Having some troubles with a new voip gateway service we're using; hoping someone could provide any advice.
To sum up:
Call is initiated from pots line; gets routed to voip gateway provider; gateway forwards invite to our ser server; one ring then busy signal is heard on originating/requesting pots line; the destined softphone UA, registered via our ser server, never gets call.
As far as I can fathom, ser recieves an INVITE forwarded/routed from the gateway, then ser requests auth/cred, then gateway responds with an ACK and at that point everything just stops.
Assistance is much appreciated, as I'm unable to determine what may be causing the issue.
208.xxx.xxx.xx = 3rd-party/commercial voip gateway server 206.xx.xx.x = our ser proxy server
1234567890 = originating pots line 8889997777 = softphone UA number ( aliased to sip uri 'blah@206.xx.xx.x' )
ngrep:
# U 208.xxx.xxx.xx:5060 -> 206.xx.xx.x:5060 INVITE sip:8889997777@206.xx.xx.x SIP/2.0..Via: SIP/2.0/UDP 208.xxx.xxx.xx:5060;branch=z9hG4bK40f0830c;rport..From: "John Doe" sip:1234567890@208.xxx.xxx.xx;tag=as5f35b551..To: <s ip:8889997777@206.xx.xx.x>..Contact: sip:1234567890@208.xxx.xxx.xx..Call-ID: 02c132b659e84c2321debbf226051e3d@208.xxx.xxx.xx..CSeq: 102 INVITE..User-Agent: Asterisk PBX..Max-Forwards: 70 ..Date: Fri, 24 Feb 2006 22:28:05 GMT..Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY..Content-Type: application/sdp..Content-Length: 397....v=0..o=root 32669 32669 IN IP4 208.xxx.xxx.xx..s=session..c=IN IP4 208.xxx.xxx.xx..t=0 0..m=audio 10784 RTP/AVP 0 18 8 3 111 4 97 101..a=rtpmap:0 PCMU/8000..a=rtpmap:18 G729/8000..a=fmtp:18 annexb=no..a=rtpmap:8 PCMA/80 00..a=rtpmap:3 GSM/8000..a=rtpmap:111 G726-32/8000..a=rtpmap:4 G723/8000..a=rtpmap:97 iLBC/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 0-16..a=silenceSupp:off - - - -.. # U 206.xx.xx.x:5060 -> 208.xxx.xxx.xx:5060 SIP/2.0 407 Proxy Authentication Required..Via: SIP/2.0/UDP 208.xxx.xxx.xx:5060;branch=z9hG4bK40f0830c;rport=5060..From: "John Doe" sip:1234567890@208.xxx.xxx.xx;tag=as5f35b551..To : sip:8889997777@206.xx.xx.x;tag=2d38da4c38ea547b795405b32554c3bb.f3cb..Call-ID: 02c132b659e84c2321debbf226051e3d@208.xxx.xxx.xx..CSeq: 102 INVITE..Proxy-Authenticate: Digest realm="208.1 39.204.245", nonce="43fe339b33d7c58a0d89e4711838584d"..Server: Sip EXpress router (0.9.4 (i386/linux))..Content-Length: 0..Warning: 392 206.xx.xx.x:5060 "Noisy feedback tells: pid=2 974 req_src_ip=208.xxx.xxx.xx req_src_port=5060 in_uri=sip:8889997777@206.xx.xx.x out_uri=sip:8889997777@206.xx.xx.x via_cnt==1".... # U 208.xxx.xxx.xx:5060 -> 206.xx.xx.x:5060 ACK sip:8889997777@206.xx.xx.x SIP/2.0..Via: SIP/2.0/UDP 208.xxx.xxx.xx:5060;branch=z9hG4bK40f0830c;rport..From: "John Doe" sip:1234567890@208.xxx.xxx.xx;tag=as5f35b551..To: <sip: 8889997777@206.xx.xx.x>;tag=2d38da4c38ea54795405554c3bb...Contact: sip:1234567890@208.xxx.xxx.xx..Call-ID: 02c132b659e84c2321debbf226051e3d@208.xxx.xxx.xx..CSeq: 102 ACK..User-A gent: Asterisk PBX..Max-Forwards: 70..Content-Length: 0....
... end of transmission; no further exchange after gateway ACK; originating pots line hears a single ring, then fast busy signal; softphone UA never recieves INVITE or anything
ser debug:
IP Request: 0(2974) method: <INVITE> 0(2974) uri: sip:8889997777@206.xx.xx.x 0(2974) version: <SIP/2.0> 0(2974) parse_headers: flags=1 0(2974) Found param type 232, <branch> = <z9hG4bK40f0830c>; state=6 0(2974) Found param type 235, <rport> = <n/a>; state=17 0(2974) end of header reached, state=5 0(2974) parse_headers: Via found, flags=1 0(2974) parse_headers: this is the first via 0(2974) After parse_msg... 0(2974) preparing to run routing scripts... 0(2974) parse_headers: flags=128 0(2974) end of header reached, state=9 0(2974) DEBUG: get_hdr_field: <To> [31]; uri=[sip:8889997777@206.xx.xx.x] 0(2974) DEBUG: to body [sip:8889997777@206.xx.xx.x ] 0(2974) get_hdr_field: cseq <CSeq>: <102> <INVITE> 0(2974) DEBUG:maxfwd:is_maxfwd_present: value = 70 0(2974) DBG:maxfwd:process_maxfwd_header: value 70 decreased to 16 0(2974) DEBUG: add_param: tag=as5f35b551 0(2974) end of header reached, state=29 0(2974) parse_headers: flags=256 0(2974) DEBUG: get_hdr_body : content_length=397 0(2974) found end of header 0(2974) find_first_route: No Route headers found 0(2974) loose_route: There is no Route HF 0(2974) is_local(): Realm '206.xx.xx.x' is local 0(2974) parse_headers: flags=16384 0(2974) pre_auth(): Credentials with given realm not found 0(2974) build_auth_hf(): 'Proxy-Authenticate: Digest realm="208.xxx.xxx.xx", nonce="43fe35e639b33d7c58a0d89e47df7fe11838584d" ' 0(2974) parse_headers: flags=-1 0(2974) check_via_address(208.xxx.xxx.xx, 208.xxx.xxx.xx, 0) 0(2974) DEBUG:destroy_avp_list: destroying list (nil) 0(2974) receive_msg: cleaning up 0(2974) SIP Request: 0(2974) method: <ACK> 0(2974) uri: sip:8889997777@206.xx.xx.x 0(2974) version: <SIP/2.0> 0(2974) parse_headers: flags=1 0(2974) Found param type 232, <branch> = <z9hG4bK40f0830c>; state=6 0(2974) Found param type 235, <rport> = <n/a>; state=17 0(2974) end of header reached, state=5 0(2974) parse_headers: Via found, flags=1 0(2974) parse_headers: this is the first via 0(2974) After parse_msg... 0(2974) preparing to run routing scripts... 0(2974) parse_headers: flags=4 0(2974) DEBUG: add_param: tag=2d38da4c38ea547b795405b32554c3bb.f3cb 0(2974) end of header reached, state=29 0(2974) DEBUG: get_hdr_field: <To> [73]; uri=[sip:8889997777@206.xx.xx.x] 0(2974) DEBUG: to body [sip:8889997777@206.xx.xx.x] 0(2974) DEBUG: sl_filter_ACK : local ACK found -> dropping it! 0(2974) DEBUG:destroy_avp_list: destroying list (nil) 0(2974) receive_msg: cleaning up
As far as I can fathom, ser recieves an INVITE forwarded/routed from the gateway, then ser requests auth/cred, then gateway responds with an ACK and at that point everything just stops.
Maybe you should not request auth/cred when the INVITE comes from the IP of the gateway. I would suspect the gateway is unable to provide credentials. You can use the trusted table to add the IPs of those gateways that you "trust". For example the below code snippet with only ask for credentials when the source IP is not in the trusted table.
if (method=="INVITE" & !allow_trusted()) { if (!proxy_authorize( "yourrealm" /* realm */, "subscriber" /* table name */)) { proxy_challenge( "yourrealm" /* realm */, "0" /* no qop */ ); break; };
Assistance is much appreciated, as I'm unable to determine what may be causing the issue.
On Friday February 24 2006 6:05 pm, Andres wrote:
As far as I can fathom, ser recieves an INVITE forwarded/routed from the gateway, then ser requests auth/cred, then gateway responds with an ACK and at that point everything just stops.
You can use the trusted table to add the IPs of those gateways that you "trust".
<snip>
Thanks so much for the quick response; and you're spot-on about the trusted table... of course just minutes after making my original post, I go through everything once again, and find that I had typo'd the trusted entry in the db for the gateway! After correcting the 'from_pattern', things have begun to work again.
Cheers!
Corey