Routing is an important problem in networks. We look at routing in the presence of line segment constraints (i.e., obstacles that our edges are not allowed to cross). Let P be a set of n vertices in the plane and let S be a set of line segments between the vertices in P, with no two line segments intersecting properly. We present the first 1-local O(1)-memory routing algorithm on the visibility graph of P with respect to a set of constraints S (i.e., it never looks beyond the direct neighbours of the current location and does not need to store more than O(1)-information to reach the target). We also show that when routing on any triangulation T of P such that S\subseteq T, no o(n)-competitive routing algorithm exists when only considering the triangles intersected by the line segment from the source to the target (a technique commonly used in the unconstrained setting). Finally, we provide an O(n)-competitive 1-local O(1)-memory routing algorithm on any such T, which is optimal in the worst case, given the lower bound.