This Question is Possibly Answered

1 "correct" answer available (4 pts) 2 "helpful" answers available (2 pts)
3 Replies Last post: Jul 17, 2008 11:51 AM by joegen  
Click to view sun7man's profile   5 posts since
Jun 1, 2008

Jul 15, 2008 8:09 AM

B2BUpperReg mode behavior


I'm looking at using OpenSBC (latest from source) to interface outside devices with Cisco Call Manager 6.x. It's running on a dual homed box with one interface on the "internet" and the inernal interface on the same network as the Call Manager.

For UpperReg config I have a route pointing to the Call Manager and both re-write options enabled, I also have a B2B route, pointing a dn range to the Call Manager.

Phone/device registration works fine and I see the Contact Header hi-jacking and using the backdoor port 5062. The only issue of course is the un-supported MWI-off sent by CCM. The issue comes when placing a call to a Call Manager dn, the Contact header in the Invite no longer looks "hi-jacked" and uses port 5060 and the SDP contains the actual phone's internet IP for the signalling end-point and the internal IP of OpenSBC for the media end-point. This does not sound like correct B2BUA behavior or am I missing something? Logs can be provided if necessary.

Thanks.

Click to view joegen's profile   136 posts since
Apr 28, 2007
1. Jul 15, 2008 8:16 PM in response to: sun7man
Re: B2BUpperReg mode behavior
It is true that OpenSBC uses port 5062 as the default port for the backdoor. The backdoor is used to catch calls coming from the registrar towards a hi-jacked registration. Calls coming from the outside will always use port 5060. Since you claimed that the contact address reaches the UAS unchanged, I am suspecting that your call is being proxied instead of using the B2BUA subsystem. Another post is of this nature. See

http://www.opensourcesip.org:8080/clearspacex/message/8551#8551

In your case, what you must use is B2BUpperRegMode

Joegen

sun7man wrote:

I'm looking at using OpenSBC (latest from source) to interface outside devices with Cisco Call Manager 6.x. It's running on a dual homed box with one interface on the "internet" and the inernal interface on the same network as the Call Manager.

For UpperReg config I have a route pointing to the Call Manager and both re-write options enabled, I also have a B2B route, pointing a dn range to the Call Manager.

Phone/device registration works fine and I see the Contact Header hi-jacking and using the backdoor port 5062. The only issue of course is the un-supported MWI-off sent by CCM. The issue comes when placing a call to a Call Manager dn, the Contact header in the Invite no longer looks "hi-jacked" and uses port 5060 and the SDP contains the actual phone's internet IP for the signalling end-point and the internal IP of OpenSBC for the media end-point. This does not sound like correct B2BUA behavior or am I missing something? Logs can be provided if necessary.

Thanks.

Click to view joegen's profile   136 posts since
Apr 28, 2007
3. Jul 17, 2008 11:51 AM in response to: sun7man
Re: B2BUpperReg mode behavior
I am not sure I am getting you correctly. From what I see in the log, OpenSBC correctly encoded sip:6818@192.168.10.36:5060 as the contact which is the correct one if its talking to a UAS residing at 192.168.10.45. What exactly were you expecting? sip:6818@192.168.10.36:5062 ? As I have said, 5062 backdoor port is only used as a means to determine which calls are coming from the upper-registrar (your real registrar). Call coming from your outside interface will use port 5060. Calls coming from your registrar will point to 5062.

Joegen

sun7man wrote:

Thanks for the feedback.

Yes, I am using B2BUpperRegMode and have in fact explored B2B and Full with the same results. Here is a snip from the log for a call from an outside endpoint (an Xlite phone on the same external network as OpenSBC's outside interface) to an internal sip server/ua sitting at 192.168.10.45. The inside IP for OpenSBC is 192.168.10.36 with it's outside 10.1.5.154. I'll also include the Invite sent by OpenSBC which shows what I described earlier, the non hi-jacked contact header and the SDP signalling connection point not being that of the internal OpenSBC interface. (6818 called 5101)

U 2008/07/17 10:23:36.800871 192.168.10.36:5060 -> 192.168.10.45:5060
INVITE sip:5101@192.168.10.45 SIP/2.0.
From: "6818" <sip:6818@192.168.10.45>;tag=b256737d.
To: "5101" <sip:5101@192.168.10.45>.
Via: SIP/2.0/UDP 192.168.10.36:5060;iid=10635;branch=z9hG4bKec89aafe8152dd118aa78e240916ca4d;uas-addr=192.168.10.45;rport.
CSeq: 1 INVITE.
Call-ID: NmE3NDJhNDYyOGRkZDJkNmEzNDdhYmRhYTRhZGI5OTU.-0x0009.
Contact: <sip:6818@192.168.10.36:5060>.
User-Agent: OpenSBC v1.1.5-5.
Max-Forwards: 69.
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO.
Content-Type: application/sdp.
Content-Length: 371.
.
v=0.
o=- 2 2 IN IP4 10.1.2.159.
s=CounterPath X-Lite 3.0.
c=IN IP4 192.168.10.36.
t=0 0.
m=audio 30034 RTP/AVP 107 119 100 106 0 105 98 8 3 101.
a=fmtp:101 0-15.
a=rtpmap:107 BV32/16000.
a=rtpmap:119 BV32-FEC/16000.
a=rtpmap:100 SPEEX/16000.
a=rtpmap:106 SPEEX-FEC/16000.
a=rtpmap:105 SPEEX-FEC/8000.
a=rtpmap:98 iLBC/8000.
a=rtpmap:101 telephone-event/8000.

337863:20:11.681 INF: CID=0x0ec8 <<< INVITE sip:5101@192.168.10.45 SIP/2.0 SRC: 10.1.2.159:26960:UDP enc=0 bytes=890
337863:20:11.685 INF: CID=0x0ec8 >>> SIP/2.0 100 Trying DST: 10.1.2.159:26960:UDP SRC: 10.1.5.154:5060 enc=0 bytes=287
337863:20:11.686 PWL: CID=0x0000 Using Iface: 10.1.5.154 to send to Dest: 10.1.2.159
337863:20:11.688 DBG: CID=0x0ec8
337863:20:11.688 DBG: CID=0x0ec8 *** CREATING TRANSACTION (IST) ***
337863:20:11.688 DBG: CID=0x0ec8 Message: INVITE sip:5101@192.168.10.45 SIP/2.0
337863:20:11.688 DBG: CID=0x0ec8 Call-Id: ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.
337863:20:11.688 DBG: CID=0x0ec8
337863:20:11.689 DTL: CID=0x0ec8 IST(735094642) *** CREATED *** - IST|ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.|z9hG4bK-d8754z-395d1a5234620c56-1---d8754z-|INVITE
337863:20:11.690 DTL: CID=0x0ec8 IST(735094642) Event(SIPMessage) - INVITE sip:5101@192.168.10.45 SIP/2.0
337863:20:11.690 DBG: CID=0x0ec8 TRANSACTION: (IST) INVITE sip:5101@192.168.10.45 SIP/2.0 State: 0
337863:20:11.692 DBG: CID=0x0ec8 Event: SIPStack::Enqueue(INVITE sip:5101@192.168.10.45 SIP/2.0)
337863:20:11.693 DBG: CID=0x0ec8 Event: B2BUserAgent::ProcessEvent( INVITE sip:5101@192.168.10.45 SIP/2.0 )
337863:20:11.693 DBG: CID=0x0ec8 Event: Setting UA Core Call to handle event INVITE
337863:20:11.694 DTL: CID=0x0ec8 Event: ---> Inbound - INVITE sip:5101@192.168.10.45 SIP/2.0
337863:20:11.696 DBG: CID=0x0ec8 Session CREATED
337863:20:11.696 INF: CID=0x0ec8 *** CREATED (UAS) CALL *** ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.
337863:20:11.696 DBG: CID=0x1325 Multidirectional Session CREATED
337863:20:11.697 DBG: CID=0x1325 B2BUAConnection Created 0x0x852dc58
337863:20:11.697 DBG: CID=0x1325 *** COUNTERS *** (Constructor)ICT=0 NICT=0 IST=1 NIST=2 TIMERS=5 CALL=1 CONN=1 REG=0 RTP=0 QUEUE=1 CACHE=3 GC=3 TOTALCONN=9 TOTALREG=0 TOTALSZR=3 AVGDUR=21990 HIGHDUR=25390 IDLETIME=0
337863:20:11.699 INF: CID=0x0ec8 *** NO REGISTRATION FOUND *** Fetching route through local database URI sip:5101@192.168.10.45
337863:20:11.700 PWL: CID=0x0000 *** NO MATCH *** sip:5000@* --> sip:5101@192.168.10.45
337863:20:11.700 PWL: CID=0x0000 *** MATCH *** sip:51* --> sip:5101@192.168.10.45
337863:20:11.701 INF: CID=0x0ec8 *** STATIC ROUTE FOUND *** URI sip:5101@192.168.10.45
337863:20:11.702 DBG: CID=0x0ec8 *** MESSAGE ARRIVAL *** for SIP Session ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.
337863:20:11.705 DTL: CID=0x0ec8 IST(735094642) StateIdle->StateProceeding
337863:20:11.708 DBG: CID=0x0ec8 Session CREATED
337863:20:11.708 INF: CID=0x0ec8 *** CREATED (UAC) CALL *** ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.-0x0008
337863:20:11.709 PWL: CID=0x0000 RTP: Media Proxy Forced
337863:20:11.710 DBG: CID=0x06cb CREATED via=10.1.5.154:5060 for target=10.1.2.159 protocol=UDP
337863:20:11.712 PWL: CID=0x0000 RTP_UDP Session 1 created: 10.1.5.154:30028-30029 ssrc=2126972481
337863:20:11.713 PWL: CID=0x0000 RTP Adding session RTP_UDP
337863:20:11.713 PWL: CID=0x0000 RTP_UDP SetRemoteSocketInfo: session=1 data channel, new=0.0.0.0:0, local=10.1.5.154:30028-30029, remote=0.0.0.0:0-0
337863:20:11.713 PWL: CID=0x0000 RTP_UDP SetRemoteSocketInfo: session=1 control channel, new=0.0.0.0:1, local=10.1.5.154:30028-30029, remote=0.0.0.0:0-1
337863:20:11.713 PWL: CID=0x0000 RTP_UDP SetTemporaryRemoteSocketInfo: session=1 data channel, new=10.1.2.159:20212, local=10.1.5.154:30028-30029, remote=0.0.0.0:0-0
337863:20:11.713 PWL: CID=0x0000 RTP_UDP SetTemporaryRemoteSocketInfo: session=1 control channel, new=10.1.2.159:20213, local=10.1.5.154:30028-30029, remote=10.1.2.159:20212-20213
337863:20:11.714 INF: CID=0x0ec8 *** RTP Session CREATED *** l-addr=10.1.5.154 r-addr=10.1.2.159/10.1.2.159 r-port=20212
337863:20:11.715 DBG: CID=0x06cb CREATED via=192.168.10.36:5060 for target=192.168.10.45 protocol=UDP
337863:20:11.716 DBG: CID=0x0ec8 RTP: Second Leg offer being set from First Leg SDP
337863:20:11.716 PWL: CID=0x0000 RTP Found existing session 1
337863:20:11.718 PWL: CID=0x0000 RTP_UDP Session 1 created: 192.168.10.36:30030-30031 ssrc=2302551348
337863:20:11.718 PWL: CID=0x0000 RTP Adding session RTP_UDP
337863:20:11.718 PWL: CID=0x0000 RTP Found existing session 1
337863:20:11.719 DBG: CID=0x0ec8 RTP: (Audio) First Leg Offer being translated to 192.168.10.36:30030
337863:20:11.725 DBG: CID=0x0ec8
337863:20:11.725 DBG: CID=0x0ec8 *** CREATING TRANSACTION (ICT) ***
337863:20:11.725 DBG: CID=0x0ec8 Message: INVITE sip:5101@192.168.10.45 SIP/2.0
337863:20:11.725 DBG: CID=0x0ec8 Call-Id: ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.-0x0008
337863:20:11.725 DBG: CID=0x0ec8
337863:20:11.726 DTL: CID=0x0ec8 ICT(735094643) *** CREATED *** - ICT|ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.-0x0008|z9hG4bK94b56f848152dd118aa78e240916ca4d|INVITE
337863:20:11.728 DTL: CID=0x0ec8 ICT(735094643) Event(SIPMessage) - INVITE sip:5101@192.168.10.45 SIP/2.0
337863:20:11.728 DBG: CID=0x0ec8 TRANSACTION: (ICT) INVITE sip:5101@192.168.10.45 SIP/2.0 State: 0
337863:20:11.732 INF: CID=0x0ec8 >>> INVITE sip:5101@192.168.10.45 SIP/2.0 DST: 192.168.10.45:5060:UDP SRC: 192.168.10.36:5060 enc=0 bytes=925
337863:20:11.733 PWL: CID=0x0000 Using Iface: 192.168.10.36 to send to Dest: 192.168.10.45
337863:20:11.736 DTL: CID=0x0ec8 Found ICT|ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.-0x0008|z9hG4bK94b56f848152dd118aa78e240916ca4d|INVITE for INVITE sip:5101@192.168.10.45 SIP/2.0
337863:20:11.737 DBG: CID=0x0ec8 Event: Setting UA Core Call to handle event INVITE
337863:20:11.738 DTL: CID=0x0ec8 Event: ---> TransportWrite - INVITE
337863:20:11.740 DTL: CID=0x0ec8 ICT(735094643) Event(SIPMessage) - INVITE sip:5101@192.168.10.45 SIP/2.0
337863:20:11.741 DBG: CID=0x0ec8 TRANSACTION: (ICT) INVITE sip:5101@192.168.10.45 SIP/2.0 State: 0
337863:20:11.741 DTL: CID=0x0ec8 ICT(735094643) StateIdle->StateCalling(INVITE sip:5101@192.168.10.45 SIP/2.0)
337863:20:11.746 INF: CID=0x0ec8 <<< SIP/2.0 100 Trying SRC: 192.168.10.45:5060:UDP enc=0 bytes=364
337863:20:11.747 DTL: CID=0x0ec8 Found ICT|ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.-0x0008|z9hG4bK94b56f848152dd118aa78e240916ca4d|INVITE for SIP/2.0 100 Trying
337863:20:11.748 DTL: CID=0x0ec8 ICT(735094643) Event(SIPMessage) - SIP/2.0 100 Trying
337863:20:11.748 DBG: CID=0x0ec8 TRANSACTION: (ICT) SIP/2.0 100 Trying State: 1
337863:20:11.748 DTL: CID=0x0ec8 ICT(735094643) StateCalling->StateProceeding(SIP/2.0 100 Trying)
337863:20:11.749 DBG: CID=0x0ec8 Event: SIPStack::Enqueue(SIP/2.0 100 Trying)
337863:20:11.750 DBG: CID=0x0ec8 Event: B2BUserAgent::ProcessEvent( SIP/2.0 100 Trying )
337863:20:11.750 DBG: CID=0x0ec8 Event: Setting UA Core Call to handle event INVITE
337863:20:11.751 DTL: CID=0x0ec8 Event: ---> Inbound - SIP/2.0 100 Trying
337863:20:11.751 DBG: CID=0x0ec8 *** MESSAGE ARRIVAL *** for SIP Session ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.-0x0008
337863:20:11.873 INF: CID=0x0ec8 <<< SIP/2.0 200 OK SRC: 192.168.10.45:5060:UDP enc=0 bytes=669
337863:20:11.874 DTL: CID=0x0ec8 Found ICT|ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.-0x0008|z9hG4bK94b56f848152dd118aa78e240916ca4d|INVITE for SIP/2.0 200 OK
337863:20:11.875 DTL: CID=0x0ec8 ICT(735094643) Event(SIPMessage) - SIP/2.0 200 OK
337863:20:11.876 DBG: CID=0x0ec8 TRANSACTION: (ICT) SIP/2.0 200 OK State: 2
337863:20:11.876 DTL: CID=0x0ec8 ICT(735094643) StateProceeding->StateConnected(SIP/2.0 200 OK)
337863:20:11.876 DBG: CID=0x0ec8 Event: SIPStack::Enqueue(SIP/2.0 200 OK)
337863:20:11.878 DBG: CID=0x0ec8 Event: B2BUserAgent::ProcessEvent( SIP/2.0 200 OK )
337863:20:11.878 DBG: CID=0x0ec8 Event: Setting UA Core Call to handle event INVITE
337863:20:11.878 DTL: CID=0x0ec8 Event: ---> Inbound - SIP/2.0 200 OK
337863:20:11.879 DBG: CID=0x0ec8 *** MESSAGE ARRIVAL *** for SIP Session ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.-0x0008
337863:20:11.882 DBG: CID=0x06cb CREATED via=192.168.10.36:5060 for target=192.168.10.45 protocol=UDP
337863:20:11.883 PWL: CID=0x0000 RTP Found existing session 1
337863:20:11.883 PWL: CID=0x0000 RTP_UDP SetRemoteSocketInfo: session=1 data channel, new=0.0.0.0:0, local=192.168.10.36:30030-30031, remote=0.0.0.0:0-0
337863:20:11.883 PWL: CID=0x0000 RTP_UDP SetRemoteSocketInfo: session=1 control channel, new=0.0.0.0:1, local=192.168.10.36:30030-30031, remote=0.0.0.0:0-1
337863:20:11.884 PWL: CID=0x0000 RTP_UDP SetTemporaryRemoteSocketInfo: session=1 data channel, new=192.168.10.36:49154, local=192.168.10.36:30030-30031, remote=0.0.0.0:0-0
337863:20:11.884 PWL: CID=0x0000 RTP_UDP SetTemporaryRemoteSocketInfo: session=1 control channel, new=192.168.10.36:49155, local=192.168.10.36:30030-30031, remote=192.168.10.36:49154-49155
337863:20:11.884 INF: CID=0x0ec8 *** RTP Session CREATED *** l-addr=192.168.10.36 r-addr=192.168.10.45/192.168.10.36 r-port=49154
337863:20:11.888 DTL: CID=0x0ec8 *** INIT DIALOG (UAC) *** OpenSBC Main Trunk ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.-0x0008
337863:20:11.888 INF: CID=0x0ec8 *** CALL ESTABLISHED *** ZjI3Y2QzZWQxMDgxMzg4OWRiZGZjYjEyZjVmMDQ4Y2I.-0x0008
337863:20:11.889 DTL: CID=0x0ec8 NAT: Setting target address from sip:5101@192.168.10.45 to 192.168.10.45:506
a=sendrecv.