Hello! I am trying to implement Call forwarding. Server runs openser 1.0.0 and I have a Cisco PSTN GW where only defined calling numbers are permitted (because of accounting on the "upstream" provider). My problem is when a call from PSTN is beeing forwarded and I have to "turn it back" to the PSTN gatway.
Calls from : 1) Sip server ---> SIP-CALL-FW ---> PSTN GW OK, the calling number is also changed to the number which has turned call forwarding on. The display on the phone also showing the number which has turned Call forwarding on..
2) PSTN ---> SIP-CALL-FW ---> SIP SERVER Works OK
3) PSTN ----> SIP-CALL-FW ---> PSTN is not working. Dialpeer matching in Cisco not OK because calling number not OK. I can define a way so that all calls can go through the GW. Then I sometimes get a "482 loop detected". The disply on the phone showing the orginal calling number (not the number wich hat turnd Call forwarding on).
Is this the right way to "turn" a call back to where it came from? Have a missed a "rebuild" of the message?
if (avp_db_load("$ruri","$fw_to") & method=="INVITE") { # CALL Forward log(1, "INFO: AVP_db_load fw_to true \n"); #save called number avp_write("$ruri/username","s:org_to"); #Insert call forward number avp_pushto("$ruri/username","$fw_to"); #is call forward number local or to PSTN if (does_uri_exist()) { log(1, "INFO:Call FW to Local users\n"); if (!lookup("location")) { log(1, "INFO: call FW to local user, not online\n"); route(4); return; };
log(1, "INFO:Call FW to local users online\n");
uac_replace_from("$avp(s:org_to)","sip:$avp(s:org_to)@212.125.213.151:5060"); if (!t_relay()) { sl_reply_error(); return; }; return;
} else { log(1, "INFO: Call FW to PSTN\n");
#here is somting wrong. What??? #move Called number as From number and send to PSTN GW
uac_replace_from("$avp(s:org_to)","sip:$avp(s:org_to)@212.125.213.151:5060"); rewritehostport("80.239.101.34:5060"); append_hf("P-hint: call fwd to PSTN\r\n"); append_branch(); record_route(); if (!t_relay()) { sl_reply_error(); return; };
}; return; }
Cisco trace : calling from 38092382 (PSTN) to 38707130 (on the SIP server) witch is forwarded to 95066833 (PSTN)
Call comming in from PSTN to SIP-server : Sent: (from Cisco) INVITE sip:38707130@212.125.213.151:5060 SIP/2.0 Via: SIP/2.0/UDP 80.239.101.34:5060;branch=z9hG4bK69972 From: sip:38092382@80.239.101.34;tag=2A699224-CC6 To: sip:38707130@212.125.213.151 Date: Fri, 02 Dec 2005 18:41:38 GMT Call-ID: 1B42584B-629A11DA-AFCCC9A9-E3CBCB60@80.239.101.34 Supported: 100rel,timer Min-SE: 1800 Cisco-Guid: 457212883-1654264282-2767847443-3293903248 User-Agent: Cisco-SIPGateway/IOS-12.x Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, COMET, REFER, SUBSCRIBE, NOTIFY, INFO, UPDATE, REGISTER CSeq: 101 INVITE Max-Forwards: 70 Remote-Party-ID: sip:38092382@80.239.101.34;party=calling;screen=yes;privacy=off Timestamp: 1133548898 Contact: sip:38092382@80.239.101.34:5060 Expires: 180 Allow-Events: telephone-event Content-Type: application/sdp Content-Length: 253
v=0 o=CiscoSystemsSIP-GW-UserAgent 6274 5968 IN IP4 80.239.101.34 s=SIP Call c=IN IP4 80.239.101.34 t=0 0 m=audio 16788 RTP/AVP 18 8 0 c=IN IP4 80.239.101.34 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000
*Dec 2 18:41:38.278: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg: Received: SIP/2.0 100 trying -- your call is important to us Via: SIP/2.0/UDP 80.239.101.34:5060;branch=z9hG4bK69972 From: sip:38092382@80.239.101.34;tag=2A699224-CC6 To: sip:38707130@212.125.213.151 Call-ID: 1B42584B-629A11DA-AFCCC9A9-E3CBCB60@80.239.101.34 CSeq: 101 INVITE Server: OpenSer (1.0.0 (i386/linux)) Content-Length: 0 Warning: 392 212.125.213.151:5060 "Noisy feedback tells: pid=29232 req_src_ip=80.239.101.34 req_src_port=55717 in_uri=sip:38707130@212.125.213.151:5060 out_uri=sip:95066833@80.239.101.34:5060 via_cnt==1"
*Dec 2 18:41:38.282: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg: Received: INVITE sip:95066833@80.239.101.34:5060 SIP/2.0 Record-Route: sip:212.125.213.151;ftag=2A699224-CC6;lr=on Via: SIP/2.0/UDP 212.125.213.151;branch=z9hG4bK1e4.11a1a9d3.0 Via: SIP/2.0/UDP 80.239.101.34:5060;branch=z9hG4bK69972 From: sip:38707130@212.125.213.151:5060;tag=2A699224-CC6 To: sip:38707130@212.125.213.151 Date: Fri, 02 Dec 2005 18:41:38 GMT Call-ID: 1B42584B-629A11DA-AFCCC9A9-E3CBCB60@80.239.101.34 Supported: 100rel,timer Min-SE: 1800 Cisco-Guid: 457212883-1654264282-2767847443-3293903248 User-Agent: Cisco-SIPGateway/IOS-12.x Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, COMET, REFER, SUBSCRIBE, NOTIFY, INFO, UPDATE, REGISTER CSeq: 101 INVITE Max-Forwards: 69 Remote-Party-ID: sip:38092382@80.239.101.34;party=calling;screen=yes;privacy=off Timestamp: 1133548898 Contact: sip:38092382@80.239.101.34:5060 Expires: 180 Allow-Events: telephone-event Content-Type: application/sdp Content-Length: 253 P-hint: call fwd to PSTN
v=0 o=CiscoSystemsSIP-GW-UserAgent 6274 5968 IN IP4 80.239.101.34 s=SIP Call c=IN IP4 80.239.101.34 t=0 0 m=audio 16788 RTP/AVP 18 8 0 c=IN IP4 80.239.101.34 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000
Dial peer maching (call forward from SIP server). Calling number is wrong, should be 38707130 (number who has put forwarding on) Calling Number=38092382, Called Number=95066833, Voice-Interface=0x0, Timeout=TRUE, Peer Encap Type=ENCAP_VOIP, Peer Search Type=PEER_TYPE_VOICE, Peer Info Type=DIALPEER_INFO_SPEECH *Dec 2 19:44:08.330: //-1/D6732AD9A532/DPM/dpAssociateIncomingPeerCore: Result=NO_MATCH(-1) After All Match Rules Attempt *Dec 2 19:44:08.334: //-1/D6732AD9A532/DPM/dpMatchPeersCore: Calling Number=, Called Number=95066833, Peer Info Type=DIALPEER_INFO_SPEECH *Dec 2 19:44:08.334: //-1/D6732AD9A532/DPM/dpMatchPeersCore: Match Rule=DP_MATCH_DEST; Called Number=95066833
Best regards Kjell Arild
Hi,
I would say the problem is the RPID header . when a call from PSTN gets back to PSTN, it will carry the original RPID inserted by the GW. AFAIK, the CISCO gw looks first to RPID and than to FROM when determining the caller. If you look into the logs you send, the GW says "Calling Number=38092382" which is the RPID and not the FROM 38707130.
So, either change the RPID for calls to PSTN (recommended) or if use FROM, remove the RPID hdr before fwd to GW.
regards, bogdan
Kjell Arild Frigstad wrote:
Hello! I am trying to implement Call forwarding. Server runs openser 1.0.0 and I have a Cisco PSTN GW where only defined calling numbers are permitted (because of accounting on the "upstream" provider). My problem is when a call from PSTN is beeing forwarded and I have to "turn it back" to the PSTN gatway.
Calls from :
- Sip server ---> SIP-CALL-FW ---> PSTN GW OK, the calling number is
also changed to the number which has turned call forwarding on. The display on the phone also showing the number which has turned Call forwarding on..
PSTN ---> SIP-CALL-FW ---> SIP SERVER Works OK
PSTN ----> SIP-CALL-FW ---> PSTN is not working. Dialpeer matching
in Cisco not OK because calling number not OK. I can define a way so that all calls can go through the GW. Then I sometimes get a "482 loop detected". The disply on the phone showing the orginal calling number (not the number wich hat turnd Call forwarding on).
Is this the right way to "turn" a call back to where it came from? Have a missed a "rebuild" of the message?
if (avp_db_load("$ruri","$fw_to") & method=="INVITE") { # CALL Forward log(1, "INFO: AVP_db_load fw_to true \n"); #save called number avp_write("$ruri/username","s:org_to"); #Insert call forward number avp_pushto("$ruri/username","$fw_to"); #is call forward number local or to PSTN if (does_uri_exist()) { log(1, "INFO:Call FW to Local users\n"); if (!lookup("location")) { log(1, "INFO: call FW to local user, not online\n"); route(4); return; };
log(1, "INFO:Call FW to local users online\n");
uac_replace_from("$avp(s:org_to)","sip:$avp(s:org_to)@212.125.213.151:5060");
if (!t_relay()) { sl_reply_error(); return; }; return; } else { log(1, "INFO: Call FW to PSTN\n"); #here is somting wrong. What??? #move Called number as From number and send to PSTN GW
uac_replace_from("$avp(s:org_to)","sip:$avp(s:org_to)@212.125.213.151:5060");
rewritehostport("80.239.101.34:5060"); append_hf("P-hint: call fwd to PSTN\r\n"); append_branch(); record_route(); if (!t_relay()) { sl_reply_error(); return; }; };
return; }
Cisco trace : calling from 38092382 (PSTN) to 38707130 (on the SIP server) witch is forwarded to 95066833 (PSTN)
Call comming in from PSTN to SIP-server : Sent: (from Cisco) INVITE sip:38707130@212.125.213.151:5060 SIP/2.0 Via: SIP/2.0/UDP 80.239.101.34:5060;branch=z9hG4bK69972 From: sip:38092382@80.239.101.34;tag=2A699224-CC6 To: sip:38707130@212.125.213.151 Date: Fri, 02 Dec 2005 18:41:38 GMT Call-ID: 1B42584B-629A11DA-AFCCC9A9-E3CBCB60@80.239.101.34 Supported: 100rel,timer Min-SE: 1800 Cisco-Guid: 457212883-1654264282-2767847443-3293903248 User-Agent: Cisco-SIPGateway/IOS-12.x Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, COMET, REFER, SUBSCRIBE, NOTIFY, INFO, UPDATE, REGISTER CSeq: 101 INVITE Max-Forwards: 70 Remote-Party-ID: sip:38092382@80.239.101.34;party=calling;screen=yes;privacy=off Timestamp: 1133548898 Contact: sip:38092382@80.239.101.34:5060 Expires: 180 Allow-Events: telephone-event Content-Type: application/sdp Content-Length: 253
v=0 o=CiscoSystemsSIP-GW-UserAgent 6274 5968 IN IP4 80.239.101.34 s=SIP Call c=IN IP4 80.239.101.34 t=0 0 m=audio 16788 RTP/AVP 18 8 0 c=IN IP4 80.239.101.34 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000
*Dec 2 18:41:38.278: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg: Received: SIP/2.0 100 trying -- your call is important to us Via: SIP/2.0/UDP 80.239.101.34:5060;branch=z9hG4bK69972 From: sip:38092382@80.239.101.34;tag=2A699224-CC6 To: sip:38707130@212.125.213.151 Call-ID: 1B42584B-629A11DA-AFCCC9A9-E3CBCB60@80.239.101.34 CSeq: 101 INVITE Server: OpenSer (1.0.0 (i386/linux)) Content-Length: 0 Warning: 392 212.125.213.151:5060 "Noisy feedback tells: pid=29232 req_src_ip=80.239.101.34 req_src_port=55717 in_uri=sip:38707130@212.125.213.151:5060 out_uri=sip:95066833@80.239.101.34:5060 via_cnt==1"
*Dec 2 18:41:38.282: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg: Received: INVITE sip:95066833@80.239.101.34:5060 SIP/2.0 Record-Route: sip:212.125.213.151;ftag=2A699224-CC6;lr=on Via: SIP/2.0/UDP 212.125.213.151;branch=z9hG4bK1e4.11a1a9d3.0 Via: SIP/2.0/UDP 80.239.101.34:5060;branch=z9hG4bK69972 From: sip:38707130@212.125.213.151:5060;tag=2A699224-CC6 To: sip:38707130@212.125.213.151 Date: Fri, 02 Dec 2005 18:41:38 GMT Call-ID: 1B42584B-629A11DA-AFCCC9A9-E3CBCB60@80.239.101.34 Supported: 100rel,timer Min-SE: 1800 Cisco-Guid: 457212883-1654264282-2767847443-3293903248 User-Agent: Cisco-SIPGateway/IOS-12.x Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, COMET, REFER, SUBSCRIBE, NOTIFY, INFO, UPDATE, REGISTER CSeq: 101 INVITE Max-Forwards: 69 Remote-Party-ID: sip:38092382@80.239.101.34;party=calling;screen=yes;privacy=off Timestamp: 1133548898 Contact: sip:38092382@80.239.101.34:5060 Expires: 180 Allow-Events: telephone-event Content-Type: application/sdp Content-Length: 253 P-hint: call fwd to PSTN
v=0 o=CiscoSystemsSIP-GW-UserAgent 6274 5968 IN IP4 80.239.101.34 s=SIP Call c=IN IP4 80.239.101.34 t=0 0 m=audio 16788 RTP/AVP 18 8 0 c=IN IP4 80.239.101.34 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000
Dial peer maching (call forward from SIP server). Calling number is wrong, should be 38707130 (number who has put forwarding on) Calling Number=38092382, Called Number=95066833, Voice-Interface=0x0, Timeout=TRUE, Peer Encap Type=ENCAP_VOIP, Peer Search Type=PEER_TYPE_VOICE, Peer Info Type=DIALPEER_INFO_SPEECH *Dec 2 19:44:08.330: //-1/D6732AD9A532/DPM/dpAssociateIncomingPeerCore: Result=NO_MATCH(-1) After All Match Rules Attempt *Dec 2 19:44:08.334: //-1/D6732AD9A532/DPM/dpMatchPeersCore: Calling Number=, Called Number=95066833, Peer Info Type=DIALPEER_INFO_SPEECH *Dec 2 19:44:08.334: //-1/D6732AD9A532/DPM/dpMatchPeersCore: Match Rule=DP_MATCH_DEST; Called Number=95066833
Best regards Kjell Arild
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
Hi, confirms that it was the RPID who was wrong, removed it, and it works OK!
Thanks!
Best regards K.A.Frigstad
Bogdan-Andrei Iancu wrote:
Hi,
I would say the problem is the RPID header . when a call from PSTN gets back to PSTN, it will carry the original RPID inserted by the GW. AFAIK, the CISCO gw looks first to RPID and than to FROM when determining the caller. If you look into the logs you send, the GW says "Calling Number=38092382" which is the RPID and not the FROM 38707130.
So, either change the RPID for calls to PSTN (recommended) or if use FROM, remove the RPID hdr before fwd to GW.
regards, bogdan
Kjell Arild Frigstad wrote:
Hello! I am trying to implement Call forwarding. Server runs openser 1.0.0 and I have a Cisco PSTN GW where only defined calling numbers are permitted (because of accounting on the "upstream" provider). My problem is when a call from PSTN is beeing forwarded and I have to "turn it back" to the PSTN gatway.
Calls from :
- Sip server ---> SIP-CALL-FW ---> PSTN GW OK, the calling number is
also changed to the number which has turned call forwarding on. The display on the phone also showing the number which has turned Call forwarding on..
PSTN ---> SIP-CALL-FW ---> SIP SERVER Works OK
PSTN ----> SIP-CALL-FW ---> PSTN is not working. Dialpeer matching
in Cisco not OK because calling number not OK. I can define a way so that all calls can go through the GW. Then I sometimes get a "482 loop detected". The disply on the phone showing the orginal calling number (not the number wich hat turnd Call forwarding on).
Is this the right way to "turn" a call back to where it came from? Have a missed a "rebuild" of the message?
if (avp_db_load("$ruri","$fw_to") & method=="INVITE") { # CALL Forward log(1, "INFO: AVP_db_load fw_to true \n"); #save called number avp_write("$ruri/username","s:org_to"); #Insert call forward number avp_pushto("$ruri/username","$fw_to"); #is call forward number local or to PSTN if (does_uri_exist()) { log(1, "INFO:Call FW to Local users\n"); if (!lookup("location")) { log(1, "INFO: call FW to local user, not online\n"); route(4); return; };
log(1, "INFO:Call FW to local users online\n");
uac_replace_from("$avp(s:org_to)","sip:$avp(s:org_to)@212.125.213.151:5060");
if (!t_relay()) { sl_reply_error(); return; }; return; } else { log(1, "INFO: Call FW to PSTN\n"); #here is somting wrong. What??? #move Called number as From number and send to PSTN GW
uac_replace_from("$avp(s:org_to)","sip:$avp(s:org_to)@212.125.213.151:5060");
rewritehostport("80.239.101.34:5060"); append_hf("P-hint: call fwd to PSTN\r\n"); append_branch(); record_route(); if (!t_relay()) { sl_reply_error(); return; }; };
return; }
Cisco trace : calling from 38092382 (PSTN) to 38707130 (on the SIP server) witch is forwarded to 95066833 (PSTN)
Call comming in from PSTN to SIP-server : Sent: (from Cisco) INVITE sip:38707130@212.125.213.151:5060 SIP/2.0 Via: SIP/2.0/UDP 80.239.101.34:5060;branch=z9hG4bK69972 From: sip:38092382@80.239.101.34;tag=2A699224-CC6 To: sip:38707130@212.125.213.151 Date: Fri, 02 Dec 2005 18:41:38 GMT Call-ID: 1B42584B-629A11DA-AFCCC9A9-E3CBCB60@80.239.101.34 Supported: 100rel,timer Min-SE: 1800 Cisco-Guid: 457212883-1654264282-2767847443-3293903248 User-Agent: Cisco-SIPGateway/IOS-12.x Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, COMET, REFER, SUBSCRIBE, NOTIFY, INFO, UPDATE, REGISTER CSeq: 101 INVITE Max-Forwards: 70 Remote-Party-ID: sip:38092382@80.239.101.34;party=calling;screen=yes;privacy=off Timestamp: 1133548898 Contact: sip:38092382@80.239.101.34:5060 Expires: 180 Allow-Events: telephone-event Content-Type: application/sdp Content-Length: 253
v=0 o=CiscoSystemsSIP-GW-UserAgent 6274 5968 IN IP4 80.239.101.34 s=SIP Call c=IN IP4 80.239.101.34 t=0 0 m=audio 16788 RTP/AVP 18 8 0 c=IN IP4 80.239.101.34 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000
*Dec 2 18:41:38.278: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg: Received: SIP/2.0 100 trying -- your call is important to us Via: SIP/2.0/UDP 80.239.101.34:5060;branch=z9hG4bK69972 From: sip:38092382@80.239.101.34;tag=2A699224-CC6 To: sip:38707130@212.125.213.151 Call-ID: 1B42584B-629A11DA-AFCCC9A9-E3CBCB60@80.239.101.34 CSeq: 101 INVITE Server: OpenSer (1.0.0 (i386/linux)) Content-Length: 0 Warning: 392 212.125.213.151:5060 "Noisy feedback tells: pid=29232 req_src_ip=80.239.101.34 req_src_port=55717 in_uri=sip:38707130@212.125.213.151:5060 out_uri=sip:95066833@80.239.101.34:5060 via_cnt==1"
*Dec 2 18:41:38.282: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg: Received: INVITE sip:95066833@80.239.101.34:5060 SIP/2.0 Record-Route: sip:212.125.213.151;ftag=2A699224-CC6;lr=on Via: SIP/2.0/UDP 212.125.213.151;branch=z9hG4bK1e4.11a1a9d3.0 Via: SIP/2.0/UDP 80.239.101.34:5060;branch=z9hG4bK69972 From: sip:38707130@212.125.213.151:5060;tag=2A699224-CC6 To: sip:38707130@212.125.213.151 Date: Fri, 02 Dec 2005 18:41:38 GMT Call-ID: 1B42584B-629A11DA-AFCCC9A9-E3CBCB60@80.239.101.34 Supported: 100rel,timer Min-SE: 1800 Cisco-Guid: 457212883-1654264282-2767847443-3293903248 User-Agent: Cisco-SIPGateway/IOS-12.x Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, COMET, REFER, SUBSCRIBE, NOTIFY, INFO, UPDATE, REGISTER CSeq: 101 INVITE Max-Forwards: 69 Remote-Party-ID: sip:38092382@80.239.101.34;party=calling;screen=yes;privacy=off Timestamp: 1133548898 Contact: sip:38092382@80.239.101.34:5060 Expires: 180 Allow-Events: telephone-event Content-Type: application/sdp Content-Length: 253 P-hint: call fwd to PSTN
v=0 o=CiscoSystemsSIP-GW-UserAgent 6274 5968 IN IP4 80.239.101.34 s=SIP Call c=IN IP4 80.239.101.34 t=0 0 m=audio 16788 RTP/AVP 18 8 0 c=IN IP4 80.239.101.34 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000
Dial peer maching (call forward from SIP server). Calling number is wrong, should be 38707130 (number who has put forwarding on) Calling Number=38092382, Called Number=95066833, Voice-Interface=0x0, Timeout=TRUE, Peer Encap Type=ENCAP_VOIP, Peer Search Type=PEER_TYPE_VOICE, Peer Info Type=DIALPEER_INFO_SPEECH *Dec 2 19:44:08.330: //-1/D6732AD9A532/DPM/dpAssociateIncomingPeerCore: Result=NO_MATCH(-1) After All Match Rules Attempt *Dec 2 19:44:08.334: //-1/D6732AD9A532/DPM/dpMatchPeersCore: Calling Number=, Called Number=95066833, Peer Info Type=DIALPEER_INFO_SPEECH *Dec 2 19:44:08.334: //-1/D6732AD9A532/DPM/dpMatchPeersCore: Match Rule=DP_MATCH_DEST; Called Number=95066833
Best regards Kjell Arild
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users