cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
712
Views
0
Helpful
8
Replies

one to one mapping of SIP client to POTS line

jcolley98
Level 1
Level 1

Hi 

I have a need to have a one to one mapping between a SIP client and a FXO POTS line. ( times 8) 

i.e. An incoming call on the FXO always rings the same SIP client (which is a softphone on a PC) and any call from that SIP client always uses the same FXO port to dial out. 

In all the below I am talking about softphone id 44444 and FXO 0/0/3

 

The inbound seems easy with :-

voice-port 0/0/3
 output attenuation 0
 connection plar opx 44444
 caller-id enable

 

the connection plar opx does it nicely.

 

The out bound call I have yet to achieve. After scouring these and other forums I came up with the attached configuration...

The intent was create a voip dial peer to match the incoming call. It should then translate the called number - replace the leading  0 with 2 digits of the required pots dial peer and reinsert the 0. The dialled number should them match the relevant outgoing pots dial peer and dial out.

 

With this configuration, if I add the two digits of my FXO pots peer e.g. 44 to the number I am calling i.e. 440712345678 then the call will go out of the correct FXO. It works for each port with 11, 22, 33 and so on.

With just the 10 digit number 0712345678 the the call fails.

It seems that the dial peer never matches the call coming from the softphone so the translation never happenss

 

I have tried a number of things to make the dial peer match:- 

These are a couple snips of the cfg to show where I am at:

voice translation-profile Phone4
 translate called 4

voice translation-rule 4
 rule 1 /^0/ /44/

- voice class uri Console44444 sip
 pattern sip:44444@10.1.1.50:5061

 

dial-peer voice 14 voip
 translation-profile incoming Phone4
 preference 1
 answer-address 44444

 

I have tried a number of things based on reading documentation and forums to get the peer to match the softphone:-

- session target ipv4:10.1.1.1:5060

 

-session protocol sipv2

 incoming uri via Console44444

 

Is there another way to do this? Any ideas appreciated.

 

The kit is:-

Cisco IOS Software, C2900 Software (C2900-UNIVERSALK9-M), Version 15.4(3)M1, RELEASE SOFTWARE (fc1)

Cisco CISCO2911/K9 (revision 1.0) with 483328K/40960K bytes of memory.
Processor board ID FGL191111GE
3 Gigabit Ethernet interfaces
1 terminal line
1 Virtual Private Network (VPN) Module
8 Voice FXO interfaces
DRAM configuration is 64 bits wide with parity enabled.
255K bytes of non-volatile configuration memory.
255488K bytes of ATA System CompactFlash 0 (Read/Write)


License Info:

License UDI:

-------------------------------------------------
Device#   PID                   SN
-------------------------------------------------
*1        CISCO2911/K9          FGL191111GE     

 

Happy to send any debug output if you can let me know which debugs to enable....

 

Thanks all

 

John Colley

 

 

 

 

 

8 Replies 8

Hi,

 

With your IOS version, you can use dialpeer grouping feature. This allows to bind incoming dialpeers to outgoing dialpeers. You can match the calling number on the inbound dialpeer and map it to a specific outgoing port using specific outgoing dialpeer.

Another way of doing it using Corlist

 

Example

 

voice class dpg 17
 dial-peer 17

dial-peer voice 17 pots

 description ***** OUTGOIGN DP 01 ******
 destination-pattern .T
 port 0/0/0:15


dial-peer voice 117 voip

 description ***** MATCH CALLS FROM EXTENSION 1111 *****
 answer-address 1111
 destination dpg 17

 

voice class dpg 18
 dial-peer 18

dial-peer voice 18 pots

 description ***** OUTGOIGN DP 02 ******
 destination-pattern .T
 port 0/0/1:15


dial-peer voice 118 voip

 description ***** MATCH CALLS FROM EXTENSION 1112 *****
 answer-address 1112
 destination dpg 18
 

Hi Mohammed

 

Thanks for the above. I will give this a try in the next day or so. It certainly looks like a good option However, as I mentioned I am unable to get the incoming call to match a dial peer using the answer-address or the other methods. Any ideas what to look for?

 

Thanks again

 

John Colley

try debug voice dialpeer to see what calling number are you receiving .

Hi Mohammed

Attached is the voice config I came up with based on your suggestions above. Also some dialpeer debug output.

Sad to say It does not work correctly. It seems that all the outbound dial peers are matched and it chooses one an a round robin basis.... so call goes out correct port 1 in 8 tries.

Doesn't seem to be matching the inbound dialpeer correctly but I can't see why.

Appreciate any further advice you can offer

Thank you

 

Hi,

 

I thought your phones are registered with CUCM and you need dialpeers to match calls from CUCM. The debugs are showing that your phones is registered with the router (CME/SRST). This won't match any of the inbound dialpeers. Once a phone registers with CME a dialpeer will be created started from 4000X.

Hi

We do not have CUCM, only the router. Do we need CUCM or CME to make this work?

 

This debug shows a match with dialpeer 14 but then it goes on to match 40001 as well. The translation doesn't happen and the dpg doesn't do anything.....

TMG_Test#
TMG_Test#
003327: *Aug 24 05:52:43.983 UTC: //-1/xxxxxxxxxxxx/DPM/dpAssociateIncomingPeerCore:
   Match Rule=DP_MATCH_ANSWER; Calling Number=44444
003328: *Aug 24 05:52:43.983 UTC: //-1/xxxxxxxxxxxx/DPM/dpMatchPeertype:
   Is Incoming=TRUE, Number Expansion=FALSE
003329: *Aug 24 05:52:43.983 UTC: //-1/xxxxxxxxxxxx/DPM/dpMatchCore:
   Dial String=, Expanded String=, Calling Number=44444T
   Timeout=TRUE, Is Incoming=TRUE, Peer Info Type=DIALPEER_INFO_SPEECH
003330: *Aug 24 05:52:43.983 UTC: //-1/xxxxxxxxxxxx/DPM/MatchNextPeer:
   Result=Success(0); Incoming Dial-peer=14 Is Matched
003331: *Aug 24 05:52:43.983 UTC: //-1/2C5D440484B2/DPM/dpAssociateIncomingPeerCore:
   Match Rule=DP_MATCH_ORIGINATE; Calling Number=44444
003332: *Aug 24 05:52:43.983 UTC: //-1/2C5D440484B2/DPM/dpMatchPeertype:
   Is Incoming=TRUE, Number Expansion=FALSE
003333: *Aug 24 05:52:43.983 UTC: //-1/2C5D440484B2/DPM/dpMatchCore:
   Dial String=, Expanded String=, Calling Number=44444T
   Timeout=TRUE, Is Incoming=TRUE, Peer Info Type=DIALPEER_INFO_SPEECH
003334: *Aug 24 05:52:43.983 UTC: //-1/2C5D440484B2/DPM/MatchNextPeer:
   Result=Success(0); Incoming Dial-peer=40001 Is Matched
003335: *Aug 24 05:52:53.251 UTC: //-1/xxxxxxxxxxxx/DPM/dpMatchCore:
   Dial String=0419781853, Expanded String=0419781853, Calling Number=0419781853T
   Timeout=TRUE, Is Incoming=FALSE, Peer Info Type=DIALPEER_INFO_SPEECH
003336: *Aug 24 05:52:53.251 UTC: //-1/xxxxxxxxxxxx/DPM/dpMatchCore:
   Result=-1
003337: *Aug 24 05:52:53.251 UTC: //-1/xxxxxxxxxxxx/DPM/dpAssociateIncomingPeerCore:
   Match Rule=DP_MATCH_ANSWER; Calling Number=44444
003338: *Aug 24 05:52:53.251 UTC: //-1/xxxxxxxxxxxx/DPM/dpMatchPeertype:
   Is Incoming=TRUE, Number Expansion=FALSE
003339: *Aug 24 05:52:53.251 UTC: //-1/xxxxxxxxxxxx/DPM/dpMatchCore:
   Dial String=, Expanded String=, Calling Number=44444T
   Timeout=TRUE, Is Incoming=TRUE, Peer Info Type=DIALPEER_INFO_SPEECH
003340: *Aug 24 05:52:53.251 UTC: //-1/xxxxxxxxxxxx/DPM/MatchNextPeer:
   Result=Success(0); Incoming Dial-peer=14 Is Matched

 

 

 

Hi,

 

this feature isn't applicable for CMEs. It is used when you integrate call control system like CUCM to voice gateway using dialpeers.

 

For CME, you can use corlists to couple phones to outgoing dialpeers.

OK, thanks for your help.