<div> </div>
<div class="gmail_quote">2008/2/1 Iñaki Baz Castillo <<a href="mailto:ibc@aliax.net">ibc@aliax.net</a>>:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">2008/2/1, David Villasmil <<a href="mailto:david.villasmil.work@gmail.com">david.villasmil.work@gmail.com</a>>:<br>
<div class="Ih2E3d">><br>> route{<br>> if (method=="INVITE") {<br>> # CUSTOMER-CUSTOMER CALL<br>><br>> if($si=="ip1"||$si=="ip2"){<br>
> xlog("L_ERR", "\n************** CUSTOMER-CUSTOMER CALL<br>> (ASTERISK->OPENSER) ************\n");<br>> if (uri=~"^sip:8888"){<br>> strip(4);<br>
> }<br>> if (!lookup("location")) {<br>> sl_send_reply("404", "Not Found");<br>> exit;<br>
> };<br>> }<br>> }<br>><br>> if (!lookup("location")) {<br>> sl_send_reply("404", "Not Found");<br>> exit;<br>> };<br>
<br></div>Si el INVITE viene de esas IP's estás aplicando **2 veces** el<br>lookup(location). La segunda obviamente fallará, pues ya habías<br>modificado el URI en la primera.<br>
<div class="Ih2E3d"><br><br><br><br>> ************** CUSTOMER-CUSTOMER CALL (ASTERISK->OPENSER) ************<br>> 11(20554) rewrite_uri: Rewriting Request-URI with '<a href="mailto:sip:s@192.168.1.253">sip:s@192.168.1.253</a>'<br>
<br></div>
<div class="Ih2E3d">> porqué el username termina siendo "s"????? claro, así nunca lo encontrará!<br><br></div>Asterisk por defecto se registra como "s@IP", puedes comprobarlo<br>monitorizando el REGISTER que envía Asterisk y mirando la cabecera<br>
"Contact" (que es la localización que registra). No hay ningún<br>problema por ello, ninguno.<br>No obstante ,puedes forzar a que registre otro username así:<br><br>register => usuario:passwd@dominio/nuevo_username<br>
<br>y registrará ese username en vez de "s".<br><br>Pero este NO es tu poblema, el fallo es que aplicas dos veces lookup(location).<br></blockquote>
<div> </div>
<div> </div>
<div>
<div>Iñaki,</div>
<div> </div>
<div>Efectivamente, eran dos cosas juntas. Estuve en el IRC de openser, resulta que el asterisk, como tu bien dices, se registra como s@.... no hay problema con eso, PERO, como hacía el lookup DOS VECES fallaba al intentar mandar la llamada al asterisk... Qué tonto soy...</div>
<div> </div>
<div>De los errores se aprende.. jeje</div>
<div> </div>
<div> </div>
<div>ahora tengo la ruta así:</div>
<div>route{</div>
<div> if (method=="INVITE") {</div>
<div> # CUSTOMER-CUSTOMER CALL</div>
<div> if($si=="ip1"){</div>
<div> xlog("L_ERR", "\n************** CUSTOMER</div>
<div> if (uri=~"^sip:8888"){<br> strip(4);<br> }<br> if (!lookup("location")) {<br> sl_send_reply("404", "Not Found");<br>
exit;<br> };<br> if (!t_relay()) {<br> sl_reply_error();<br> };</div>
<div> exit;</div>
<div> }<br> append_hf("P-hint: usrloc applied\r\n");<br> };</div>
<div> route(1);<br>}</div>
<div> </div>
<div>route[1] {<br> if (subst_uri('/(sip:.*);nat=yes/\1/')){<br> setbflag(6);<br> };</div>
<div> if (isflagset(5)||isbflagset(6)) {<br> route(3);<br> }</div>
<div> if (!t_relay()) {<br> sl_reply_error();<br> };<br> exit;<br>}<br></div>
<div> </div>
<div>pero claro, eso significa que la llamada nunca pasa por el route(1), cierto? eso quiere decir que no detecta y arregla el nat? debería ser más bien así?:</div>
<div> </div>
<div> </div>
<div> </div>
<div>route{<br> if (method=="INVITE") {<br> # CUSTOMER-CUSTOMER CALL<br> if($si=="ip1"){<br> xlog("L_ERR", "\n************** CUSTOMER");<br> if (uri=~"^sip:8888"){<br>
strip(4);<br> }<br> if (!lookup("location")) {<br> sl_send_reply("404", "Not Found");<br> exit;<br> };<br>
route(1);<br> }<br> append_hf("P-hint: usrloc applied\r\n");<br> };<br>}</div>
<div>route[1] {<br> if (subst_uri('/(sip:.*);nat=yes/\1/')){<br> setbflag(6);<br> };<br> if (isflagset(5)||isbflagset(6)) {<br> route(3);<br> }<br> if (!t_relay()) {<br>
sl_reply_error();<br> };<br> exit;<br>}</div>
<div> </div>
<div> </div>
<div> </div>
<div>Un saludo muy grande.... y ya a estas alturas deberíamos conocernos los más asíduos a la lista... que ya "hablamos" casi todos los dias! jeje!</div>
<div> </div>
<div> </div>
<div>David</div></div></div>