Anruf endet bei Falscher Nummer

thisismyname

Neuer User
Mitglied seit
24 Sep 2008
Beiträge
78
Punkte für Reaktionen
0
Punkte
0
Hi,

ich habe meinen Asterisk 1.4 Server ueber 3 SIP Accounts registriert. Hier vorerst die extesions.con und die sip.conf

extensions.conf
Code:
[default]

[OUT0]  ;Hier haengt ein IP-Hardphone dran
exten = _XXXX.,1,Dial(SIP/${EXTEN}@0xxx90)
exten = _XXXX.,2,Hangup

exten => 1001,1,Answer()
exten => 1001,2,Playback(hello-world)
exten => 1001,3,Hangup

[OUT1] ;Hier in KPhone (soft)
exten = _XXXX.,1,Dial(SIP/${EXTEN}@0xxx90)
exten = _XXXX.,2,Hangup

[IN0] ;SIPID0
exten => 000,1,Dial(SIP/2000)

[IN1] ;SIPID1
exten => 001,1,Dial(SIP/2001)

[IN2] ;SIPID2
exten => 001,1,Answer()
exten => 001,2,Playback(hello-world)
exten => 001,3,Hangup

sip.conf
Code:
[general]
port=5060
bindaddr=0.0.0.0
srvlookup = yes
defaultexpiry=600

context=IN0
register => 0xxx90:[email protected]/000

context=IN1
register => 0xxx91:[email protected]/001

context=IN2
register => 0xxx92:[email protected]/002


[2000]
context=OUT0
type=friend
secret=1234
host=dynamic

[2001]
context=OUT1
type=friend
secret=1234
host=dynamic

[0xxx90]
context=IN0
type=peer
username=0xxx90
fromuser=0xxx90
secret=pass0
host=voip.xxx.net
fromdomain=voip.xxx.net
insecure=very
caninvite=no
canreinvite=no
nat=yes

[0xxx91]
context=IN1
type=peer
username=0xxx91
fromuser=0xxx91
secret=pass1
host=voip.xxx.net
fromdomain=voip.xxx.net
insecure=very
caninvite=no
canreinvite=no
nat=yes

[0xxx92]
context=IN2
type=peer
username=0xxx92
fromuser=0xxx92
secret=pass2
host=voip.xxx.net
fromdomain=voip.xxx.net
insecure=very
caninvite=no
canreinvite=no
nat=yes

Sooo, nun zum Problem...
...wenn ich von meinem Handy aus, oder zb der 0xx90 die 0xxx91 waehle komm ich immer im Context von 0xxx92 raus, also IN2. Die Hello world wird abgespielt. Hier die verbose Level 5 meldung von Asterisk bei folgendem Vorgang:

Ich Rufe von meinem Hardphone mit der Nummer 0xxx90 die 0xxx91 an. Aber wieso steht als ankommende Nummer die 0xxx92 da, aber die Richtige Caller-ID 001???

Code:
    -- Executing [0xxx91@OUT0:1] Dial("SIP/2000-081d8170", "SIP/0xxx91@0xxx90") in new stack
    -- Called 0xxx91@0xxx90
    -- Executing [001@IN2:1] Answer("SIP/0xxx92-081e2240", "") in new stack
    -- Executing [001@IN2:2] Playback("SIP/0xxx92-081e2240", "hello-world") in new stack
    -- <SIP/0xxx92-081e2240> Playing 'hello-world' (language 'en')
    -- SIP/0xxx90-081dd1f0 answered SIP/2000-081d8170
    -- Executing [001@IN2:3] Hangup("SIP/0xxx92-081e2240", "") in new stack
  == Spawn extension (IN2, 001, 3) exited non-zero on 'SIP/0xxx92-081e2240'
  == Spawn extension (OUT0, 0xxx91, 1) exited non-zero on 'SIP/2000-081d8170'

Ich verzweifle an diesem Problem... falls irgendwer eine Idee haette ich waere wahnsinnig dankbar!!!

greetz myname
 
Zuletzt bearbeitet:
Asterisk kann das nicht

Asterisk kann die Accounts 0xxx90-0xxx92 bei ankommenden Ruf nicht unterscheiden wenn sie von der gleichen IP & Port kommen.

Also PW muß überall gleich sein und context sollte überall gleich sein (sonst weiß man nicht wo der Call landen wird). Alle Unterscheidungen durch die gerufene Nummer die bei register angegeben wurde ("/000" .. "/002") im Dialplan setzen/unterscheiden.
 
Das heisst eine Firma die Intern einen Asterisk Server verwendet ihre SIP clients aber bei der Hauptfiliale zentral registriert hat kann das nicht mit Asterisk umsetzten?

Oder was gibt es sonst fuer moeglichkeiten von einem Asteriskserver mit 2 registrierten SIP Accounts untereinander zu telefonieren?

greetz
 
Das heisst eine Firma die Intern einen Asterisk Server verwendet ihre SIP clients aber bei der Hauptfiliale zentral registriert hat kann das nicht mit Asterisk umsetzten?

Da du den gleichen "Absender" für deine Gespräche hast, musst du in der sip.conf deine Kontexte aufteilen in 3x out und einmal in. Wobei "in" der letzte dieser Gruppe sein muss!
Wie das geht siehe http://www.ip-phone-forum.de/showthread.php?t=91217

Dann gehst du von dort in einen Kontext in oder incomming oder wie immer du das Ding taufst. Dort wertest du aus

exten => 000,1,Goto ... Telefon1
exten => 001,1,Goto ... Telefon2
...
 
Asterisk kann die Accounts 0xxx90-0xxx92 bei ankommenden Ruf nicht unterscheiden wenn sie von der gleichen IP & Port kommen.

Das passiert nur wenn man register und die Def. des Contextes falsch macht. Ein Indikator dafür ist die Verwendung von insecure obwohl das dafür überhaupt nicht benötigt wird.

In der sample sip.conf steht wie man eine richtige Registrierung macht und wie der dazu gehörende Context auszusehen hat. Dann klappt es auch.

Einfacher ist es allerdings zwei * Server mit IAX2 miteinander zu verbinden oder wenn man es ganz funktional haben will DUNDI zu benutzen.
 
Gut, wenn man die ganzen incoming Contexte zusammenfasst funktioniert das ganze auch auf einmal...

:)) danke euch 1000mal ;)

greetz
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.