Previous Up Next

11.11  Escape when walking through a sequence

Two methods are available to do this :
   1 service foreach_break {
       processing {
         dialog {
           response incoming INVITE() {
   5         uri<> students =
             <'sip:student.1@labri.fr',
             'sip:student.2@labri.fr',
             'sip:student.3@labri.fr',
             'sip:student.1@inria.fr',
  10         'sip:student.2@inria.fr',
             'sip:student.3@inria.fr'>;
     
             uri<100> st_inria;
             uri<2> st_labri;
  15         int i = 0;
                     
             if (requestURI == 'sip:students@labri.fr') {
               foreach (student in students) {
                 if (student match ".*@labri\.fr") {
  20               push st_labri student;
                 }
               }
               return forward st_labri;
             }
  25         else if (requestURI == 'sip:students@inria.fr') {
               foreach (student in students) {
                 if (student match ".*@inria\.fr") {
                   push st_inria student;
                   i = i + 1;          
  30             }
                 if (i==2)
                   break;
               }
               return forward st_inria;
  35         }
             return forward;
           }
         }
       }
  40 }

Previous Up Next