Can anyone help me get my Cisco 2801 to register?


#1

Hi all

I have a new Cisco 2801 with 4 BRI interfaces.

I have successfully configured it to work with other call managers, but the problem I have with Asterisk is that Asterisk needs all user devices to register and I can’t figure out how to get the Cisco to do this properly.

When I try to call into my Asterisk domain via the Cisco gateway, I see the error :-

Found no matching peer or user for ‘192.168.44.23:49551’

Here is the beginning of the SIP conversation. I am calling into my DID and Cisco is passing through the last three digits to Asterisk. In this case 390.

Sip read:
INVITE sip:390@dev.datamerge.local:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.44.23:5060;branch=z9hG4bK3C2156F
From: sip:894742460@dev.datamerge.local;tag=1CFBE590-1DFE
To: sip:390@dev.datamerge.local
Date: Sun, 22 May 2005 07:26:27 GMT
Call-ID: A4D41C27-C9C911D9-853190DA-82E86D41@192.168.44.23
Supported: 100rel,timer
Min-SE: 1800
Cisco-Guid: 2765324287-3385397721-2174091283-2141291050
User-Agent: Cisco-SIPGateway/IOS-12.x
Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, COMET, REFER, SUBSCRIBE, NOTIFY, INFO, UPDATE, REGISTER
CSeq: 101 INVITE
Max-Forwards: 15
Remote-Party-ID: sip:894742460@192.168.44.23;party=calling;screen=yes;privacy=off
Timestamp: 1116746787
Contact: sip:894742460@192.168.44.23:5060
Expires: 180
Allow-Events: telephone-event
Content-Type: application/sdp
Content-Length: 329

v=0
o=CiscoSystemsSIP-GW-UserAgent 777 5948 IN IP4 192.168.44.23
s=SIP Call
c=IN IP4 192.168.44.23
t=0 0
m=audio 17928 RTP/AVP 8 18 98 3 0 19
c=IN IP4 192.168.44.23
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=yes
a=rtpmap:98 GSM-EFR/8000
a=rtpmap:3 GSM/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:19 CN/8000

20 headers, 14 lines
Using latest request as basis request
Sending to 192.168.44.23 : 5060 (non-NAT)
Found no matching peer or user for '192.168.44.23:49551’
Found RTP audio format 8
Found RTP audio format 18
Found RTP audio format 98
Found RTP audio format 3
Found RTP audio format 0
Found RTP audio format 19
Peer audio RTP is at port 192.168.44.23:17928
Found description format PCMA
Found description format G729
Found description format GSM-EFR
Found description format GSM
Found description format PCMU
Found description format CN

SNIP…

I have tried putting the Cisco entry into sip.conf with a fixed host address, dynamic host address and username/secret pair and both to no avail.

When I use other gateways, Asterisk asks the gateway to authenticate, but in this case after the above block, it tells the Cisco to go away and nothing works.

Here is my Cisco entry in sip.conf

[cisco]
context=from-pstn
host=dynamic
type=friend
username=cisco
secret=0000

This is driving me mad.

Has anyone here successfully setup a Cisco gateway for incoming calls?

Regards

Mark


#2

Hi there,

Maybe you can p;ost the router config.

What do you have under sip-ua ? You should be able to configure the SIP server address here to register.

Also, you do not necessarily have to register with Asterisk to get it to work. If you use host=[ip address of router], this points asterisk to the proper IP.

Regards,
Joe


#3

Hi Joe

Actually, the Cisco is a strange beast. It uses an ephemeral port as a return port. Unlike other products, the Cisco cannot be set with the source port as 5060. As the port can not be set to any fixed value, Asterisk can not associate with the Cisco. Aterisk assumes the port is 5060.

For example. If I send a call from my Cisco to an extension on Asterisk, Asterisk comes back with an error like

Found no matching peer or user for ‘192.168.44.23:49551’

If I put port=49551 into the cisco entry in sip.conf, the Cisco is now correctly identified by Asterisk. However, within a couple of calls, Cisco will choose a different return port and this cannot be fixed (according to Cisco)

The way I have got around this is to make my default context one which has internal access only. This means that the Cisco cannot hairpin calls back to another external number, but it can call internal extensions, which is currently all it needs to do.

There is a hidden cli command in Cisco IOS 12.3 which runs under the sip-ua.

The format is

credentials username password realm

However this does not work either because Cisco uses the dial pattern is dial peer as the way it identifies itself to Asterisk.

I simply use a destination-pattern of . in my dial peer to voip, and Asterisk seems to have trouble with a sip entry for [.]

I could send you my IOS config, but I have done a squillion different configs and nothing has worked. After much work on this with Cisco, I have given up on trying to get it to work properly.

The only way I can see that the Cisco can be identified correctly by Asterisk so it can be given its own settings and context is if Asterisk only looks at the host IP and not the port.

Cheers

Mark


#4

Joe as an addendum to my prior posting, here is the Cisco entry in my sip.conf.

[cisco]
type=friend
port=5060
host=192.168.44.23
context=default
insecure=yes
canreinvite=yes

As you can see I have identified it by its IP address and here is the message I get when I debug sip messages from to and from the Ciscol.

Found no matching peer or user for ‘192.168.44.23:49551’

Here is the general section of my sip.conf

[general]
context=default
realm=datamerge.local
port=5060
bindaddr=0.0.0.0
srvlookup=yes

The default context can call internal handsets.

Mark