[Asterisk-Users] 2 Linphones communicating through Asterisk?

Thomas Sparr thomas.sparr at azent.se
Thu Mar 4 06:46:03 MST 2004


Hi all,

I'm experimenting with the following setup:
An Asterisk server at 192.168.0.10.
2 Linphones at 192.168.0.60 and 192.168.0.66.
The Linphones register themselves at the Asterisk as sip:60 at 192.168.0.60
and sip:66 at 192.168.0.66.
If my understanding is correct they should be available on the Asterisk
as sip:60 at 192.168.0.10 and sip:66 at 192.168.0.10.
However, if I try to call sip:66 at 192.168.0.10 from the other Linphone
the Asterisk debug says:

Looking for 66 in sip
Transmitting (no NAT):
SIP/2.0 404 Not Found

Are there any merciful soul on this list who can point me in the rigth
direction?
If your answer are RTFM, please tell me which FM to R.
Asterisk sip debug follow below.
Also attaching config files for Asterisk and Linphone I have messed
with. All others are from make samples in asterisk.
versions: Linphone 0.12.1, libosip 0.9.7, asterisk 2 days old from cvs.

Regards

Thomas


Sip read:
REGISTER sip:192.168.0.10 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.60:5060;branch=z9hG4bK3085308593
From: <sip:60 at 192.168.0.10>;tag=680816676
To: <sip:60 at 192.168.0.10>;tag=680816676
Call-ID: 412209507 at 192.168.0.60
CSeq: 0 REGISTER
Contact: <sip:60 at 192.168.0.60>
max-forwards: 10
expires: 3600
user-agent: oSIP/Linphone-0.12.1
Content-Length: 0


11 headers, 0 lines
Using latest request as basis request
Sending to 192.168.0.60 : 5060 (non-NAT)
Transmitting (no NAT):
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.0.60:5060;branch=z9hG4bK3085308593
From: <sip:60 at 192.168.0.10>;tag=680816676
To: <sip:60 at 192.168.0.10>;tag=680816676
Call-ID: 412209507 at 192.168.0.60
CSeq: 0 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
Contact: <sip:60 at 192.168.0.10>
Content-Length: 0


 to 192.168.0.60:5060
    -- Registered SIP '60' at 192.168.0.60 port 5060 expires 3600
Transmitting (no NAT):
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.60:5060;branch=z9hG4bK3085308593
From: <sip:60 at 192.168.0.10>;tag=680816676
To: <sip:60 at 192.168.0.10>;tag=680816676
Call-ID: 412209507 at 192.168.0.60
CSeq: 0 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
Expires: 3600
Contact: <sip:60 at 192.168.0.10>;expires=3600
Date: Thu, 04 Mar 2004 13:45:14 GMT
Content-Length: 0

Sip read:
INVITE sip:66 at 192.168.0.10 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.60:5060;branch=z9hG4bK962844352
From: <sip:60 at 192.168.0.10>;tag=4243659372;tag=4075507534
To:  <sip:66 at 192.168.0.10>
Call-ID: 1413225445 at 192.168.0.60
CSeq: 20 INVITE
Contact: <sip:60 at 192.168.0.60>
max-forwards: 10
user-agent: oSIP/Linphone-0.12.1
Content-Type: application/sdp
Content-Length:   367

v=0
o=60 123456 654321 IN IP4 192.168.0.60
s=A conversation
c=IN IP4 192.168.0.60
t=0 0
m=audio 7078 RTP/AVP 0 8 3 110 111 115 101
b=AS:110 20
b=AS:111 28
a=rtpmap:0 PCMU/8000/1
a=rtpmap:8 PCMA/8000/1
a=rtpmap:3 GSM/8000/1
a=rtpmap:110 speex/8000/1
a=rtpmap:111 speex/16000/1
a=rtpmap:115 1015/8000/1
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-11

11 headers, 16 lines
Using latest request as basis request
Sending to 192.168.0.60 : 5060 (non-NAT)
Found audio format UNKN
Found audio format ALAW
Found audio format UNKN
Found audio format UNKN
Found audio format UNKN
Found audio format UNKN
Found audio format UNKN
Found description format PCMU
Found description format PCMA
Found description format GSM
Found description format speex
Found description format speex
Found description format 1015
Found description format telephone-event
Capabilities: us - 12, them - 526/0, combined - 12
Non-codec capabilities: us - 1, them - 1, combined - 1
Looking for 66 in sip
Transmitting (no NAT):
SIP/2.0 404 Not Found
Via: SIP/2.0/UDP 192.168.0.60:5060;branch=z9hG4bK962844352
From: <sip:60 at 192.168.0.10>;tag=4243659372;tag=4075507534
To: <sip:66 at 192.168.0.10>;tag=as7e281fb9
Call-ID: 1413225445 at 192.168.0.60
CSeq: 20 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
Contact: <sip:66 at 192.168.0.10>
Content-Length: 0


 to 192.168.0.60:5060


Sip read:
ACK sip:66 at 192.168.0.10 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.60:5060;branch=z9hG4bK962844352
From: <sip:60 at 192.168.0.10>;tag=4243659372;tag=4075507534
To: <sip:66 at 192.168.0.10>;tag=as7e281fb9
Call-ID: 1413225445 at 192.168.0.60
CSeq: 20 ACK
Content-Length: 0



-------------- next part --------------
;
; Static extension configuration files, used by
; the pbx_config module.
;
; The "General" category is for certain variables.  
;
[general]
;
; If static is set to no, or omitted, then the pbx_config will rewrite
; this file when extensions are modified.  Remember that all comments
; made in the file will be lost when that happens. 
;
; XXX Not yet implemented XXX
;
static=yes
;
; if static=yes and writeprotect=no, you can save dialplan by
; CLI command 'save dialplan' too
;
writeprotect=no

; You can include other config files, use the #include command (without the ';')
; Note that this is different from the "include" command that includes contexts within 
; other contexts. The #include command works in all asterisk configuration files.
;#include "filename.conf"

; The "Globals" category contains global variables that can be referenced
; in the dialplan with ${VARIABLE} or ${ENV(VARIABLE)} for Environmental variable
; ${${VARIABLE}} or ${text${VARIABLE}} or any hybrid
;
[globals]
CONSOLE=Console/dsp				; Console interface for demo
;CONSOLE=Zap/1
;CONSOLE=Phone/phone0
IAXINFO=guest					; IAXtel username/password
;IAXINFO=myuser:mypass
TRUNK=Zap/g2					; Trunk interface
TRUNKMSD=1					; MSD digits to strip (usually 1 or 0)
;TRUNK=IAX2/user:pass at provider

;
; Any category other than "General" and "Globals" represent 
; extension contexts, which are collections of extensions.  
;
; Extension names may be numbers, letters, or combinations
; thereof. If an extension name is prefixed by a '_'
; character, it is interpreted as a pattern rather than a
; literal.  In patterns, some characters have special meanings:
;
;   X - any digit from 0-9
;   N - any digit from 2-9
;   [1235-9] - any digit in the brackets (in this example, 1,2,3,5,6,7,8,9)
;   . - wildcard, matches anything remaining (e.g. _9011. matches anything starting with 9011 excluding 9011 itself)
;
; For example the extenion _NXXXXXX would match normal 7 digit dialings, while
; _1NXXNXXXXXX would represent an area code plus phone number
; preceeded by a one.
;
; Contexts contain several lines, one for each step of each
; extension, which can take one of two forms as listed below,
; with the first form being preferred.  One may include another
; context in the current one as well, optionally with a
; date and time.  Included contexts are included in the order
; they are listed.
;
;[context]
;exten => someexten,priority,application(arg1,arg2,...)
;exten => someexten,priority,application,arg1|arg2...
;
; Timing list for includes is 
;
;   <time range>|<days of week>|<days of month>|<months>
;
;include => daytime|9:00-17:00|mon-fri|*|*
;
; ignorepat can be used to instruct drivers to not cancel dialtone upon
; receipt of a particular pattern.  The most commonly used example is
; of course '9' like this:
;
;ignorepat => 9
;
; so that dialtone remains even after dialing a 9.
;

;
; Here are the entries you need to participate in the IAXTEL
; call routing system.  Most IAXTEL numbers begin with 1-700, but
; there are exceptions.  For more information, and to sign
; up, please go to www.gnophone.com or www.iaxtel.com
;
[iaxtel700]
exten => _91700NXXXXXX,1,Dial(IAX2/${IAXINFO}@iaxtel.com/${EXTEN:1}@iaxtel)

[iaxprovider]
;switch => IAX2/user:[key]@myserver/mycontext

[trunkint]
;
; International long distance through trunk
;
exten => _9011.,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _9011.,2,Congestion

[trunkld]
;
; Long distance context accessed through trunk
;
exten => _91NXXNXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91NXXNXXXXXX,2,Congestion

[trunklocal]
;
; Local seven-digit dialing accessed through trunk interface
;
exten => _9NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _9NXXXXXX,2,Congestion

[trunktollfree]
;
; Long distance context accessed through trunk interface
;
exten => _91800NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91800NXXXXXX,2,Congestion
exten => _91888NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91888NXXXXXX,2,Congestion
exten => _91877NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91877NXXXXXX,2,Congestion
exten => _91866NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91866NXXXXXX,2,Congestion

[international]
;
; Master context for international long distance
;
ignorepat => 9
include => longdistance
include => trunkint

[longdistance]
;
; Master context for long distance
;
ignorepat => 9
include => local
include => trunkld

[local]
;
; Master context for local, toll-free, and iaxtel calls only
;
ignorepat => 9
include => default
include => parkedcalls
include => trunklocal
include => iaxtel700
include => trunktollfree
include => iaxprovider
;
; You can use an alternative switch type as well, to resolve
; extensions that are not known here, for example with remote 
; IAX switching you transparently get access to the remote
; 
; switch => IAX2/user:password at bigserver/local

[macro-stdexten];
;
; Standard extension macro:
;   ${ARG1} - Extension  (we could have used ${MACRO_EXTEN} here as well
;   ${ARG2} - Device(s) to ring
;
exten => s,1,Dial(${ARG2},20)					; Ring the interface, 20 seconds maximum
exten => s,2,Voicemail(u${ARG1})				; If unavailable, send to voicemail w/ unavail announce
exten => s,3,Goto(default,s,1)					; If they press #, return to start
exten => s,102,Voicemail(b${ARG1})				; If busy, send to voicemail w/ busy announce
exten => s,103,Goto(default,s,1)				; If they press #, return to start


[demo]
;
; We start with what to do when a call first comes in.
;
exten => s,1,Wait,1			; Wait a second, just for fun
exten => s,2,Answer			; Answer the line
exten => s,3,DigitTimeout,5		; Set Digit Timeout to 5 seconds
exten => s,4,ResponseTimeout,10		; Set Response Timeout to 10 seconds
exten => s,5,BackGround(demo-congrats)	; Play a congratulatory message
exten => s,6,BackGround(demo-instruct)	; Play some instructions

exten => 2,1,BackGround(demo-moreinfo)	; Give some more information.
exten => 2,2,Goto(s,6)

exten => 3,1,SetLanguage(fr)		; Set language to french
exten => 3,2,Goto(s,5)			; Start with the congratulations

exten => 1000,1,Goto(default,s,1)
;
; We also create an example user, 1234, who is on the console and has
; voicemail, etc.
;
exten => 1234,1,Playback(transfer,skip)		; "Please hold while..." 
					; (but skip if channel is not up)
exten => 1234,2,Macro(stdexten,1234,${CONSOLE})

exten => 1235,1,Voicemail(u1234)		; Right to voicemail

exten => 1236,1,Dial(Console/dsp)		; Ring forever
exten => 1236,2,Voicemail(u1234)		; Unless busy

;
; # for when they're done with the demo
;
exten => #,1,Playback(demo-thanks)		; "Thanks for trying the demo"
exten => #,2,Hangup			; Hang them up.

;
; A timeout and "invalid extension rule"
;
exten => t,1,Goto(#,1)			; If they take too long, give up
exten => i,1,Playback(invalid)		; "That's not valid, try again"

;
; Create an extension, 500, for dialing the
; Asterisk demo.
;
exten => 500,1,Playback(demo-abouttotry); Let them know what's going on
exten => 500,2,Dial(IAX2/guest at misery.digium.com/s at default)	; Call the Asterisk demo
exten => 500,3,Playback(demo-nogo)	; Couldn't connect to the demo site
exten => 500,4,Goto(s,6)		; Return to the start over message.

;
; Create an extension, 600, for evaulating echo latency.
;
exten => 600,1,Playback(demo-echotest)	; Let them know what's going on
exten => 600,2,Echo			; Do the echo test
exten => 600,3,Playback(demo-echodone)	; Let them know it's over
exten => 600,4,Goto(s,6)		; Start over

;
; Give voicemail at extension 8500
;
exten => 8500,1,VoicemailMain
exten => 8500,2,Goto(s,6)
;
; Here's what a phone entry would look like (IXJ for example)
;
;exten => 1265,1,Dial(Phone/phone0,15)
;exten => 1265,2,Goto(s,5)

;[mainmenu]
;
; Example "main menu" context with submenu
;
;exten => s,1,Answer
;exten => s,2,Background(thanks)		; "Thanks for calling press 1 for sales, 2 for support, ..."
;exten => 1,1,Goto(submenu,s,1)
;exten => 2,1,Hangup
;include => default
;
;[submenu]
;exten => s,1,Ringing					; Make them comfortable with 2 seconds of ringback
;exten => s,2,Wait,2
;exten => s,3,Background(submenuopts)	; "Thanks for calling the sales department.  Press 1 for steve, 2 for..."
;exten => 1,1,Goto(default,steve,1)
;exten => 2,1,Goto(default,mark,2)

[default]
;
; By default we include the demo.  In a production system, you 
; probably don't want to have the demo there.
;
include => demo


; Real extensions would go here.  Generally you want real extensions to be 4 or 5
; digits long (although there is no such requirement) and start with a single
; digit that is fairly large (like 6 or 7) so that you have plenty of room to
; overlap extensions and menu options without conflict.  You can alias them with
; names, too and use global variables


;exten => 6275,1,Macro(stdexten,6275,${MARK})			; assuming ${MARK} is something like Zap/2
;exten => mark,1,Goto(6275|1)						; alias mark to 6275
;exten => 6236,1,Macro(stdexten,6236,${WIL})			; Ditto for wil
;exten => wil,1,Goto(6236|1)
;
; Some other handy things are an extension for checking voicemail via
; voicemailmain
;
;exten => 8500,1,VoicemailMain
;exten => 8500,2,Hangup
;
; Or a conference room (you'll need to edit meetme.conf to enable this room)
;
;exten => 8600,1,Meetme,1234
;
; Or playing an announce to the called party, as soon it answers
;
;exten = 8700,1,Dial(${MARK},30,A(/path/to/my/announcemsg))
;
; For more information on applications, just type "show applications" at your
; friendly Asterisk CLI prompt.
;

[sip]
extern = 66,1,Dial(SIP/66)
extern = 61,1,Dial(SIP/61)
extern = 60,1,Dial(SIP/60)
-------------- next part --------------
;
; SIP Configuration for Asterisk
;
[general]
port = 5060			; Port to bind to
bindaddr = 0.0.0.0		; Address to bind to
;externip = 200.201.202.203	; Address that we're going to put in SIP messages if we're behind a NAT
localnet = 192.168.0.0         ; Internal NETWORK address
localmask = 255.255.255.0      ; Internal netmask
context = sip			; Default for incoming calls
;srvlookup = yes		; Enable SRV lookups on outbound calls
;pedantic = yes			; Enable slow, pedantic checking for Pingtel
;tos=lowdelay
;tos=184
;maxexpirey=3600		; Max length of incoming registration we allow
;defaultexpirey=120		; Default length of incoming/outoing registration
;notifymimetype=text/plain	; Allow overriding of mime type in NOTIFY
;videosupport=yes		; Turn on support for SIP video
disallow=all			; Disallow all codecs
allow=ulaw			; Allow codecs in order of preference
allow=alaw			; Allow codecs in order of preference
;allow=ilbc
;
;register => 1234 at mysipprovider.com	; Register with a SIP provider
;register => 2345 at mysipprovider.com/1234 ; Register 2345 at sip provider as 1234 here.
;
;[snomsip]
;type=friend
;secret=blah
;host=dynamic
;dtmfmode=inband		; Choices are inband, rfc2833, or info
;defaultip=192.168.0.59
;mailbox=1234,2345		; Mailbox for message waiting indicator
;restrictcid=yes		; To have the callerid restriced -> sent as ANI

;[pingtel]
;type=friend
;username=pingtel
;secret=blah
;host=dynamic
;qualify=1000			; Consider it down if it's 1 second to reply
;callgroup=1,3-4
;pickupgroup=1,3-4
;defaultip=192.168.0.60

;[cisco]
;type=friend
;username=cisco
;secret=blah
;nat=yes			; This phone may be natted
;host=dynamic
;canreinvite=no			; Cisco poops on reinvite sometimes
;qualify=200			; Qualify peer is no more than 200ms away
;defaultip=192.168.0.4

;[cisco1]
;type=friend
;username=cisco1
;fromuser=markster		; Specify user to put in "from" instead of callerid
;secret=blah
;host=dynamic
;defaultip=192.168.0.4
;amaflags=default		; Choices are default, omit, billing, documentation
;accountcode=markster		; Users may be associated with an accountcode tp ease billing

[60]
type=friend
host=dynamic
defaultip=192.168.0.60
dtmfmode=info

[61]
type=friend
host=dynamic
defaultip=192.168.0.61
dtmfmode=info

[66]
type=friend
host=dynamic
defaultip=192.168.0.66
dtmfmode=info

-------------- next part --------------

[net]
con_type=4
use_nat=0
nat_address=

[sip]
username=60
hostname=192.168.0.60
sip_port=5060
use_registrar=1
as_proxy=1
registrar=sip:192.168.0.10
passwd=
addr_of_rec=sip:60 at 192.168.0.10
expires=3600

[rtp]
audio_rtp_port=7078
video_rtp_port=0
audio_jitt_comp=60
video_jitt_comp=60

[sound]
dev_id=0
rec_lev=80
play_lev=80
source=m
local_ring=/usr/local/share/sounds/linphone/rings/orig.wav
remote_ring=/usr/local/share/sounds/linphone/ringback.wav

[video]
enabled=0
show_local=0

[audio_codec_0]
mime=PCMU
rate=8000
enabled=1

[audio_codec_1]
mime=PCMA
rate=8000
enabled=1

[audio_codec_2]
mime=GSM
rate=8000
enabled=1

[audio_codec_3]
mime=speex
rate=8000
enabled=1

[audio_codec_4]
mime=speex
rate=16000
enabled=1

[audio_codec_5]
mime=1015
rate=8000
enabled=1

[address_book]
entry_count=1
entry0= <sip:66 at 192.168.0.10>


More information about the asterisk-users mailing list