CME 7.1 emulation using 7200 Router in GNS3

Background Info:
Reasons to use ISR 7200:
According to below URL, it is recommended to use 7200 router in GNS with IOS 12.4(24)T which enables you to simulate CME version 7.x, while all other routers with 12.4(15)T allow you to access CME 4.x and older versions.
Emulating CME 7.x in GNS3
Only 7206 out of 7200 series Routers can be simulated in GNS3:
It is clearly stated that only 7206 platform is supported on GNS3 in below URL. So, make sure you download 7206 Router IOS.
Hardware Supported in GNS3
How to save start-up config, flash & NVRAM of a router in GNS3:
In order to save all your work in a GNS lab and enable you to work on it later, you need to save it as a project: File->Save Project As, and tick both the checkbox of “Save nvrams and virtual hard drivers” & “Save IOS startup configurations”. Note that your running-config is not saved as start-up config until you click File->Save (it will export config to a local file which is used for config importing for every reloading or power on) after the “write” command under IOS CLI, otherwise you config disappears just after you stop the router and start again in GNS.
Useful Reference URLs are listed as below:
GNS3 – How to save labs with router configs
How to save CME flash in GNS3 and more CME lab guides in GNS3

Setup CME 7.1 in GNS3 and connect it to the real world
Setup GNS3 lab according below topology.
GNS3 LAB
For adding default Microsoft Loopback Network Interface, refer to GNS3 Tutorial.
Here, the most important step is enabling Routing service on your Windows 7 PC to interconnect different subnets reside on your laptop NIC. Below are the summarized steps:
(NOTE: Before your change, Fully export all your registery keys to backup is highly recommended in case any wired problem caused by the change)
1-> Open windows 7 register editor by Clicking “Start”, and input “regedit” in the search bar.
2-> Go to “Computer>HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>services>Tcpip>Parameters”, find the registery key called “IPEnable Router”, change its value from 0 to 1. And restart your PC to let your change take effect.
More details, please refer to Windows 7 as Router & Connect GNS3 Network to Real Network / Other GNS3 Network.

Another Easy way to Enable PC as a Router

Run “services.msc“, go to “Routing and Remote Access“, change Startup type to “Manual“. Now you can enable Router as per-needed basis. Then verify IPEnableRouter is enabled or not from CLI.

C:\Users\ATM>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : ATM-PC
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Broadcast
  IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : gateway.2wire.net

SIP Trunk to Cisco CUCM 8.6:
The topology is summarized as below:
CIPC (10.10.20.21) — CME 7.1 (10.10.10.10) <—- SIP Trunk —> CUCM 8.6 (192.168.0.45)

Call Fail over SIP Trunk with 503 Service Unavailable:
On CUCM, a SIP Trunk with destination IP address as 10.10.10.10 is configured and CME 7.1 configures a SIP dial peer as below
:
dial-peer voice 1001 voip
description SIP Trunk to Cisco CUCM 8.6
destination-pattern 1…T
session protocol sipv2
session target ipv4:192.168.0.45              
However, when placing call to 1002 on this SIP Trunk, output of “debug ccsip message” shows that call fails with an SIP response of Error Code 503, Service Unavailable.  From the SIP INVITE message CME sends:
Apr 16 11:19:26.815: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
INVITE sip:1002@192.168.0.45:5060 SIP/2.0
Via: SIP/2.0/UDP 10.10.20.20:5060;branch=z9hG4bK12441
Remote-Party-ID: “Yan Tian” <sip:2001@10.10.20.20>;party=calling;screen=no;privacy=off
From: “Yan Tian” <sip:2001@10.10.20.20>;tag=1A13E8-18CB
To: <sip:1002@192.168.0.45>
Date: Tue, 16 Apr 2013 11:19:26 GMT
Call-ID: 5537624A-A5BE11E2-800D93B1-3F8538DF@10.10.20.20
Supported: 100rel,timer,resource-priority,replaces,sdp-anat
CME is not originating SIP Message from the correct IP (10.10.10.10) as CUCM only accepts SIP messages sent from the destination IP of configured SIP Trunk on CUCM (Things are the same for H323 Gateways / Trunks). No wonder CUCM do not response to this SIP INVITE. To solve it, bind SIP signaling interface to the CME loopback interface (10.10.10.10) by issuing below commands:
voice service voip
  sip
  bind control source-interface Loopback0
      
Afterward, you will see in output of “debug ccsip message” that SIP INVITE is originated from 10.10.10.10 as we expected.              
Apr 16 12:23:16.714: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
INVITE sip:1002@192.168.0.45:5060 SIP/2.0
Via: SIP/2.0/UDP 10.10.10.10:5060;branch=z9hG4bK12441     
Similar Cases Reference: SIP/2.0 503 Service Unavailable.

Parameters on Dial Peer:
Command “show dial-peer voice {dial-peer tag}”shows detailed parameters that applied to a specific dial peer.
Router#sh dial-peer voice 1001
VoiceOverIpPeer1001
        peer type = voice, system default peer = FALSE, information type = voice,
        description = `SIP Trunk to Cisco CUCM 8.6′,
        tag = 1001, destination-pattern = `1…T’,
        answer-address = `’, preference=0,
        CLID Restriction = None
        CLID Network Number = `’
        CLID Second Number sent
        CLID Override RDNIS = disabled,    
        numbering Type = `unknown’    
        incoming called-number = `’, connections/maximum = 0/unlimited,
        DTMF Relay = disabled,  huntstop = disabled,
        incoming COR list:maximum capability
        outgoing COR list:minimum requirement
        Translation profile (Incoming):
        Translation profile (Outgoing):
        incoming call blocking:
        translation-profile = `’
        type = voip, session-target = `ipv4:192.168.0.45′,
        technology prefix:     
        ip media DSCP = ef, ip media rsvp-pass DSCP = ef
        ip media rsvp-fail DSCP = ef, ip signaling DSCP = af31,
        ip video rsvp-none DSCP = af41,ip video rsvp-pass DSCP = af41
        ip video rsvp-fail DSCP = af41,
        RTP comfort noise payload type = 19
        fax rate = voice,   payload size =  20 bytes
        fax protocol = system
        fax-relay ecm enable
        Fax Relay ans enabled
        Fax Relay SG3-to-G3 Enabled (by system configuration)
        fax NSF = 0xAD0051 (default)
        codec = g729r8,   payload size =  20 bytes,
        voice class codec = `’
From above, it is confirmed that dial peer defaults to g729r8 not g711ulaw as we expected. Thus, explicitly assigning codec for that dial peer is required through below command.
dial-peer voice 1001 voip
codec g711ulaw

To be continued