Posts Tagged ‘SIP’

SIP Early Media in Communications Manager 8

Informational | Posted by admin
Feb 23 2011

I posted a short while back on this topic for older versions of Communications Manager.  Leave it to Cisco to move things around and make me do it again.  :)

So here’s where you find the option :

Go to Device -> Device Settings -> SIP Profile.  Select the profile you want to edit (If you use the default profile, you will need to make a copy of it).

Scroll down to the bottom section (Trunk Specific Configuration) and find the SIP Rel1XX Options parameter.  Change it to Send PRACK if 1xx Contains SDP.

As I mentioned in the other post, this parameter tells the Communications Manager to send ACK packets back in response to 100 series SIP message received that contains an SDP section.

Press the Save button and you’re done.

If you had to copy the SIP Profile, you will now need to apply the profile to your SIP trunk, then reset it to apply the changes.

Remember! Resetting the SIP Trunk will DROP all active calls.

Good luck!

Forwarding calls back across a SIP trunk between CUCM and CME

Informational, Tips & Tricks | Posted by admin
Aug 25 2010

So lets say you have a Cisco Unified Communications Manager (CUCM) system with Unity or Unity Connection. You also have a remote site running on Callmanager Express (CME) with a SIP trunk to the CUCM as the primary gateway. To keep costs down, you decided to use your centralized unity system as the VM provider rather than purchase the Unity Express module for the router.
Here’s the problem: When you call an extension on the CME box and it rolls to voicemail, you get a fast busy.

If you do a debug, you will see the following messages:

Router# debug ccsip messages


SIP/2.0 302 Moved Temporarily
Via: SIP/2.0/UDP 192.168.1.10:5060;branch=4gsi4lsi84o57osh7j6ps
From: <sip:1000@192.168.1.10>;tag=91837ae4-cf98-d1ae-7f23-95fe870ab193-d4875345
To: <sip:5000@192.168.2.1>;tag=92FE84D7-CB6
Date: Wed, 25 Aug 2010 22:00:00 GMT
Call-ID: fe1edf80-c7519084-a9be7-5ff1bac@192.168.1.10
CSeq: 101 INVITE
Allow-Events: telephone-event
Server: Cisco-SIPGateway/IOS-12.x
Content-Length: 0

This SIP message tells the CUCM that the number has been forwarded. By default, the CUCM will not know what to do with this and so will return a reorder tone.

This is an easy problem to fix, though probably hard to describe in a few words.
You could disable this SIP feature in IOS, but that would route all voice traffic for those users (to voicemail) out to the remote site and then back to the VM server. It works if your system doesn’t support this feature… but it’s not the best solution.

Instead we can just configure CUCM to reroute calls when it receives these messages.

Start by adding a new SIP profile if you use the Standard SIP Profile.
Go to : Device -> Device Settings -> SIP Profile
Click on Find and select the Standard SIP Profile
Click the Copy button to create a copy, then give the copy a new name. Something like Custom SIP Profile or Enhanced SIP Profile is fine or use your own naming standard.
Then before you save it, check the box that says Redirect by Application… this allows the CUCM system to process redirect messages on SIP devices using this profile.
Then click Save.

Next we go configure our SIP Trunk
Device -> Trunk
Click the Find button and click on your Trunk name.
Scroll all the way down. The second to the last line is your SIP profile. Change this to the custom profile we just created.
Lastly we need to tell the trunk where to reroute calls to… look a few lines farther up and you’ll see a Rerouting Calling Search Space field. Set that to your outgoing CSS. (Or a CSS that provides access to your VM or other required services)
Save the changes and Reset the trunk.

That’s it! The CUCM system will now process the SIP redirection messages and reroute the caller accordingly.

SIP Early Media and ISDN in Communications Manager 6 and 7

Informational, Tips & Tricks | Posted by admin
Oct 16 2009

There are several ways to configure a gateway for use in Cisco’s Unified Communications Manager. MGCP, H.323, SIP. Each has it’s own benefits and drawbacks.
Here are some of the big issues for me :

  • Call Preservation – When network connectivity to the system goes down, it would be nice if all active calls didn’t drop
  • Centralized Management – Being able to configure everything from one place and not have to duplicate settings on a per device basis
  • Distributed Call Management – Calls routed optimally while maintaining a reasonably small configuration that can scale well

I know there are other issues here, but these were the important ones for me.  MGCP provides the centralized management, but not the other features.  Most importantly Call Preservation.  This is why I rarely use MGCP for VoIP deployments.

To configure a SIP gateway for a Cisco Unified Communications Manager there are two steps.

  1. Configure the Gateway
  2. Configure the Communications Manager

Configuring the Gateway

This part is fairly easy.  Here I’m assuming that you already have your PRI configured.
voice rtp send-recv
!
dial-peer voice 1000000 voip
incoming called-number .
dtmf-relay rtp-nte
!
dial-peer voice 9000100 pots
destination-pattern [2-9]......
no digit-strip
port 0/0/0:23
dial-peer voice 9000200 pots
destination-pattern 1[2-9]..[2-9]......
no digit-strip
port 0/0/0:23

You could have more dial-peers, but this is enough to get started.

Configuring the Communications Manager

Go to the Device -> Trunk menu.

Click on the Add New button

Select SIP Trunk as the type and click the Next button.

There are a few fields here that need to have information in them:

  • Device Name – This can be anything, but should be descriptive
  • Device Pool – Appropriate device pool for your deployment
  • Location – Again use the appropriate location in your system
  • SIP Trunk Security Profile – Default should be fine unless you have some special requirements
  • SIP Profile – Again, Default should be fine for most users.

There are two other settings here to be aware of:

Media Termination Point Required

This should be unchecked.  While some SIP gateways may require this, it’s my experience that it causes more headaches than anything else.  It also causes all outbound calls to consume an MTP resource or Transcoder in some configurations.

DTMF Signaling Method

You might be wondering why DTMF signaling makes any difference… here’s why:  On a Cisco Unified Communications Manager even if you have MTP requirements disabled, if the DTMF relay types do not match (or are not compatible) the trunk will dynamically allocate an MTP resource which will act as a DTMF translator converting one method to another.  For maximum compatibility use : RFC 2833. You’ll see that the gateway configuration above uses RFC 2833 for it’s DTMF relay with the following command : dtmf-relay rtp-nte

The Problem with this is…

Now that our system is configured, we can make calls out.  You’ll find that everything seems to work fine.  There are a few cases however where it will not.  An example of this is when the telco sends an announcement message prior to connecting the call.  A few common uses of this method are prompts for account codes, incorrect dialing messages, etc.

SIP Trunks on Cisco’s Communications Managers create ringback locally and wait for the ISDN Connect message before actually connecting the IP media stream.  So if you receive a message from your telco before their switch sends you the Connect message, you will only continue to hear ringback on the phone until the telco terminates the connection.

An easy way to fix this is to require that all calls use a Media Termination Point.  I pointed out above that I don’t recommend this.  It drives cost up, makes troubleshooting more difficult and can cause issues with faxing.

The better way to fix this is simple, but I’m going to go into a little background explaining the why.

Whenever your telco sends an announcement message, they will flag the Progress Indicator of the Q.931 message with an 8 (Usually.  Some telcos may do this a little differently)  Your Cisco gateway will take this indicator and generate a SIP 183 Session Progress message which contains an SDP with connection parameters.  This tells the Communications Manager that there is possibly some in-band data that the user may be interested in.  The problem is that the Communications Manager will ignore this and continue to play the ringback tone instead of letting you hear the message.

To allow the Communications Manager to react to the 183 messages go into System -> Service Parameters, select your server then select the CallManager service.  Scroll down and find the Clusterwide Parameters (Device – SIP) section.  Find the SIP Rel1XX Enabled parameter and set it to True (Or use one of the Send PRACK options in 7.x).  This parameter tells the Communications Manager to send ACK packets back in response to any 100 series SIP message received.  The IOS command above, voice rtp send-recv, is used to connect the media path in both directions instead of just a single direction.

That’s it!  Press the Save button and you’re done.  Now when the system is signalled from the ISDN network it will properly cut through the media path and your users will hear any possible announcement messages.