<div>SER Users:</div>
<div> </div>
<div>Thanks in advance for any help!</div>
<div> </div>
<div>I am running ser 0.9.6 and have a relatively simple cfg file. I have only four (4) digit extensions, no PSTN, no NAT and I do not care about authorization so my config file is basically the Hello World ser.cfg with my system parameters and a few statements in route that allowed me to create standing conference rooms and an echo application with sems.</div>
<div> </div>
<div>Now I need to implement call forwarding and I have been able to setup the MySQL ser usr_preferences table per chapter 10 of the 'SER - Getting Started' and the 'mySQL newbie? Problems with mySQL and SER?' documents. After adding the call forwarding functionality discussed in chapter 10 inside my config file any number dialed to a SIP device rings busy. All SIP devices register and can call the conference rooms or the echo application but they can not call each other. I will spare you my WireShark logs but can provide if that is needed.</div>
<div> </div>
<div>I'm looking for trouble shooting suggestions. Is there a way to print to the std i/o from inside the cfg file? This is the first time I needed to handle the INVITE message so I've included my INVITE Message Handler and the Call Forwarding Handler that I added for this effort:</div>
<div> </div>
<div> </div>
<div> </div>
<div>if (method=="ACK") {<br> route(1);<br> break;<br>} if (method=="INVITE") {<br> route(3);<br> break;<br>} if (method=="REGISTER") {<br> route(2);<br> break;</div>
<div>};</div>
<div> </div>
<div>...</div>
<div><br>route[3] {<br># ----------------------------------------------------------------------<br># INVITE Message Handler<br># ----------------------------------------------------------------------</div>
<div># Note: We are using this fuction only as a hook into the <br># blind call forwarding feature. Simply want to change the<br># R-URI and relay the message.</div>
<div> </div>
<div>if (avp_db_load("$ruri/username", "s:callfwd")) {<br> setflag(22);<br> avp_pushto("$ruri", "s:callfwd");</div>
<div> </div>
<div> # Would love to do a printf here to see if this code is being hit!!!</div>
<div> # Wireshark show INVITE messages are being sent.</div>
<div> # debug/printf("\n\n****** Inside route(3) ********\n\n");</div>
<div><br> # At this point the a blind call forwarding record was found and the<br> # new destination was written in the R-URI. </div>
<div> </div>
<div> # DEBUG: try just calling route(1).<br> # route(1);</div>
<div> </div>
<div> # Send to Call Forwarding Handler</div>
<div> route(6);<br> break;<br> };</div>
<div>route(1);</div>
<div>}</div>
<div> </div>
<div>route[6] {<br># ----------------------------------------------------------------------<br># Blind Call Forwarding Handler<br>#<br># This must be done as a route block because sl_send_reply() cannot be<br># called from the failure_route block<br>
# ----------------------------------------------------------------------</div>
<div> lookup("aliases");<br> if (!is_uri_host_local()) {<br> if (!isflagset(22)) {<br> append_branch();<br> };</div>
<div> route(1);<br> break;<br> };</div>
<div> if (!lookup("location")) { <br> if (uri=~"^sip:[0-9]{4}@") {<br> route(1);<br> break;<br> };<br> sl_send_reply("404", "User Not Found");<br> break;<br>
};<br> </div>
<div> # DEBUG: There are no alias' and we are not sending calls to other</div>
<div> # networks. We may just need to call route(1) and not this</div>
<div> # function.</div>
<div><br> route(1);<br>}<br></div>