Friday 23 January 2015

SIP-trunking with Routit (Broadsoft/Broadworks) part 3

In the first 2 parts I showed you how registration with Routit works and how to avoid problems with the global SIP-proxy statement. In this blog I add some extra info and knowledge obtained by implementing Routit SIP-trunks.




Infrastructure
First get a IP-VPN. Only fools buys and bastards sell Internet based SIP trunks. Sorry sales it will add a extra 30 euro's and destroys your case maybe but it will pay off in the end.
Config an IP VPN (1x /24 segment), with the CPE-router having an address in the Voice VLAN of the customer. Only for multisegment customers you need an IP VPN Plus (costomers with multiple locations/branches with different IP-segements).

Internet based connection
If you go for an Internet based (#@$) SIP-trunk do the following: Use a modern firewall/router in front of the PBX. It should be able to do SIP Inspect (SIP ALG). Do not connect the Internet connection directly to the UC or CUBE. It will make troubleshooting troublesome because it is not always clear which source address it uses in it's SIP packets. It will work in the end but I tend to avoid this. Next to that just do not combine edge security and voip on your voice gateway/PBX.

I assume this setup:


This setup has a few caveats:
Outbound calls can only have the main number as calling party
Inbound calls do not get the DDI in the request URI of the INVITE, only in the To: header. Routit always sends the registration number in the INVITE request URI

There are 3 workarounds:
  • Use a TCL-script to get the info from the To: field to the internal DNIS field (works) link
  • Use a SIP-profile to change inbound SIP-headers (not tested by me) link link2
  • Add the DDI to the extension as secondary number (UC500/CME) works.
In the last case use the format you used to create the (extra) Trunk users. As soon you add the secondary number it will register with Routit. In some cases this setup is not always handy but will do.

In all cases do some header stripping because during any support call they will tell you they see unnecessary header info. Add the following:

Voice service voip
sip
 sip-profiles 1000
!
voice class sip-profiles 1000
request ANY sip-header Cisco-Guid remove
response ANY sip-header Cisco-Guid remove
request ANY sdp-header Connection-Info remove
response ANY sdp-header Connection-Info remove
!
Do not set asserted-id under voice service voip. It will not work when connected via the Internet.

For outbound calls be sure to replace all calling party references with the registration number. This is quite easy with a translation profile

translation-profile outbound
 translate calling 1
!
translation rule 1
 rule 15 /.*/ /31XXXXXXXXX/
!
You might add the following when using a CUBE:

voice class sip-profiles 1000
request INVITE sip-header P-Asserted-Identity add "P-Asserted-Identity:<sip:registratienummer@xxx.yyy.voipit.nl>"
!

I will add another blog for getting things working with CUBE+CUCM (and IP-VPN!).



1 comment:

  1. Hi Marcel ,

    Are you still planning to add RoutIT SIP Trunk with CUBE and CUCM in IPVPN?

    Thanks

    ReplyDelete