Asterisk 1.4 Kopplung an Siemens Hipath 4000 Eingehnede Anrufe funkionieren nicht !

dev-zero

Neuer User
Mitglied seit
15 Jul 2010
Beiträge
11
Punkte für Reaktionen
0
Punkte
0
Hallo,

wie im Titel schon beschrieben, funktionieren leider die eingehenden Anrufe nicht. Sip zu Sip, sowie Sip nach außen klappt tadellos nach dem Tutourial von Betateilchen.


sip.conf

Code:
[general]
context=default
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes

; --------------------------------------------------------------------
;
; hier koennten die Anmeldedaten für Provider stehen
;

register => <sip - baugruppen ip>
; hiermit registrieren wir den Asterisk bei Sipgate, um ankommene Anrufe
; entgegennehmen zu koennen

[3760000]
; dies ist der Context, den wir zum Raustelefonieren verwenden
; da dieser Context nur zum Raustelefonieren verwendet wird,
; ist die Angabe von "context =" hier ueberfluessig, da wir ja ohnehin
; aus der extensions.conf hierher kommen
;
type=peer
host= <sip - baugruppen ip>
fromdomain= <sip - baugruppen ip>
insecure=very
canreinvite=no
nat=no
disallow=all
allow=ulaw

[sip_in] 
; das ist der Context für kommende Anrufe
; von sipgate.de
; Diesen Context brauchen wir nur einmal - 
; egal wieviele Sipgate-Accounts wir registrieren
; wichtig ist, dass dies der LETZTE Context von
; oben nach unten in der sip.conf  betrachtet, ist
; der einen Verweis auf sipgate.de beinhaltet !
; Durch die Angabe von "context = ankommend"
; werden alle Anrufe in den gleichnamigen Context 
; [ankommend] in der extensions.conf geleitet.
;
type=peer
fromdomain= <sip - baugruppen ip>
host= <sip - baugruppen ip>
disallow=all
allow=ulaw
context=ankommend



; --------------------------------------------------------------------
;
; hier kommen die Anmeldekontexte fuer SIP Endgeraete 3761XXX
;


[3761001]
callerid=Phone 1 <3761001>
host=dynamic
domain= <asterisk ip>
user=3761001
secret=geheim
type=friend
mailbox=3761001
nat=yes
canreinvite=no

[3761002]
callerid=Phone 2 <3761002>
host=dynamic
domain= <asterisk ip>
user=3761002
secret=geheim
type=friend
mailbox=3761002
nat=yes
canreinvite=no



extensions.conf

Code:
[general]
static=yes
writeprotect=no

; --------------------------------------------------------------------
; Es hat sich als gute Praxis erwiesen, die Inhalte der Datei
; extensions.conf modular aufzubauen. Diese Praxis wollen
; wir auch hier anwenden
;

[lokal]
; Erreichbarkeit der Nebenstellen 3761XXX
; untereinander herstellen

exten => _3761XXX,1,NoCDR()
exten => _3761XXX,n,Dial,SIP/${EXTEN}|55|Ttr

[sipgate_out]
; Diesen Context verwenden wir zum waehlen von abgehenden
; Rufnummern über den Account 3760000

exten => _0.,1,Dial,SIP/${EXTEN}@3760000|45|r
exten => _ZX.,1,Dial,SIP/<bestimmte vorwahl>${EXTEN}@3760000|45|r


[ankommend]
; alle Anrufe an 3760000(sip baugruppe) sollen an das SIP Endgeraet signalisiert werden


exten => 3760000,1,Dial,SIP/${EXTEN}@<asterisk server ip>|30|r

; --------------------------------------------------------------------
;
; hier kommt der default-Context, in dem alle Geraete in der
; Grundkonfiguration erstmal laufen.
; Alle Geraete kön sich gegenseitig anrufen

[default]
include => lokal
include => sipgate_out

Ich würde mich sehr über Lösungsvorschläge freuen und bedanke mich schon mal im voraus für eure Antworten, da ich mittlerweile am verzweifeln bin =) und mir die bisherigen Lösungen auf die ich gestoßen bin leider nicht weitergeholfen haben.
 
Zuletzt bearbeitet:
Hallo dev-zero,

exten => 3760000,1,Dial,SIP/${EXTEN}@<asterisk server ip>|30|r

Das @<asterisk server ip> brauchst Du nicht. Aber auch ohne wird das höchst wahrscheinlich nicht funktionieren. Die einzige gerufene Nummer, die Du damit einfängst ist 3760000. Mit ${EXTEN} würdest Du eine Nebenstelle mit exakt dieser Nummer wählen. Das ist aber keine Deiner beiden Nebenstellen, sondern das agbehende Peer.

Ich vermute mal, Du wirst die Nebenstelle als gerufene Nummer bekommen. Oder, wenn wirklich die 3760000 gerufen wird, dann musst Du zumindest eine Nebenstelle angeben. Also wäre
Code:
exten => _376XXXX,1,Dial(SIP/${EXTEN},30,r)
oder
exten => 3760000,1,Dial(SIP/3761001,30,r)
richtig. Wenn das nichts hilft, dann poste doch bitte die CLI Ausgabe während einem ankommenden Anruf.

Du solltest Dich übrigens besser gleich an die neue Syntax halten, dann wird später der Umstieg auf eine neue Asterisk-Version leichter.

Svenja
 
Hey Svenja,

danke für deine Antwort. Jedoch haben leider beide Wege nicht funktioniert.
Ich habe bisher meine Anrufe immer mit Wireshark überprüft (siehe Anhang).
Wie heißt der Befehl auf der CLI um die akutellen Anrufe zu überprüfen ?

Die anrufende Nummer und das Softphone das erreicht werden soll, muss variabel sein. Deswegen bin ich davon ausgegangen dass das Peer (unsere sipbaugruppe mit der id 3760000) jede Nummer die angerufen wurde an die jeweilige Nebenstelle weiterleitet.

BSP: softphone (3761001,variabel) ruft auf interne Nummer (2000, variabel) an -> das funktioniert
interne Nummer (2000, variabel) ruft auf softphone (3761001,variabel) an -> funkioniert nicht

Gruß
Jan
 

Anhänge

  • siptosip.jpg
    siptosip.jpg
    152 KB · Aufrufe: 16
  • siptotelefon.jpg
    siptotelefon.jpg
    143.4 KB · Aufrufe: 7
  • telefontosip.jpg
    telefontosip.jpg
    135.8 KB · Aufrufe: 6
Zuletzt bearbeitet:
Hallo Jan,

in die CLI kommst Du mit asterisk -rvvv (je mehr v, umso höher verbose, aber 3 reicht für den Zweck). Dort spuckt Asterisk dann hoffentlich aus, was ihm nicht passt.

Mach mal eine
Code:
exten => _X.,1,Noop(Anruf fuer ${EXTEN})

Damit siehst Du, welche Nummer eigentlich gerufen wird. Wobei wenn ich das Invite richtig verstehe, wird 3761004 gerufen. Gibt's einen SIP-Client, der so heißt?

Svenja
 
Hey Svenja,

danke für den Tipp, schon mal besser um Fehler zu analysieren =).

1. Anruf: Sip(3761003) zu internen Telefon (3953)

Code:
    -- Executing [3953@default:1] Dial("SIP/3761003-081d4760", "SIP/0+<ortsvorwahl>+<prefix>3953@3760000|45|r") in new stack
    -- Called 0+<ortsvorwahl>+<prefix>3953@3760000
    -- SIP/3760000-081d8bc8 is ringing
    -- SIP/3760000-081d8bc8 answered SIP/3761003-081d4760
    -- Packet2Packet bridging SIP/3761003-081d4760 and SIP/3760000-081d8bc8
  == Spawn extension (default, 3953, 1) exited non-zero on 'SIP/3761003-081d4760'


2. Anruf: Sip (3761003) zu Sip (3761004)

Code:
  -- Executing [3761004@default:1] NoCDR("SIP/3761003-081d4760", "") in new stack
    -- Executing [3761004@default:2] Dial("SIP/3761003-081d4760", "SIP/3761004|55|Ttr") in new stack
    -- Called 3761004
    -- SIP/3761004-081d8bc8 is ringing
    -- SIP/3761004-081d8bc8 answered SIP/3761003-081d4760
  == Spawn extension (default, 3761004, 2) exited non-zero on 'SIP/3761003-081d4760'

3. Anruf: Telefon (3953) zu Sip (3761003)

Wurde leider nichts in der CLI protokolliert. Als kleine Ergänzung:
Sobald man die Nummer gewählt hat kommt schon das "Besetzt" Zeichen.

Ja du hast Recht, dass die 3761004 ein Sip-Client (Xlite) ist.

Gruß

Jan
 
3. Anruf: Telefon (3953) zu Sip (3761003)
Wurde leider nichts in der CLI protokolliert.

Hallo Jan,

das bedeutet, dass Asterisk scheinbar gar nichts von dem Anruf mitbekommt.
Zeigt Dich "sip show registry" im CLI als registriert an?

Bzw. wenn die Auszüge von Wireshark zu einem ankommenden Anruf gehören, läuft schon beim Gesprächsaufbau was schief. Da muss aber jetzt jemand ran, der sich mit dem Protokoll an sich auskennt.

Svenja
 
Hey Svenja,

nein ich werde nicht als registriert angezeigt, da liegt wahrscheinlich das Problem. Der Asterisk kann deswegen keine Anfragen beantworten.

Code:
astrum*CLI> sip show registry
Host  
                          Username       Refresh State                Reg.Time


Bloß wie melde ich mich an der Sip-Baugruppe richtig an wenn es kein Username und kein Secret gibt ?

Gruß

Jan
 
Hi

hast du die möglichkeit den Asterisk und die Hipath mit einer peer to peer verbindung zu conecten?

Gruß

Alex
 
Hey Alex es besteht bereits quasi eine P2P Verbindung, mein Asterisk hat ein routing eintrag direkt zur Sip Baugruppe
Gruß
Jan
 
Hi Jan,

ok aber hast du ihn mal als peer in der sip.conf eingetragen?

Danach solltest du ihn auch unter sip show peers sehen und du kannst sagen mit welchem context er arbeiten soll.

Weil dies ist im Moment nicht der fall und ohne context der die rufe Händelt wird Asterisk nichts machen.


Gruß

Alex
 
Zuletzt bearbeitet:
Hey Alex,

ich hab jetzt meine conf nach deiner Variante angepasst und es hat leider
nicht funktioniert. Aber ich habe in meiner Config auch ein Kontext stehen
"ankommend" und vom type="peer". Ich glaub es liegt echt an unserer Sipbaugruppe im HiPath4000, weswegen ich auch einen Termin mit dem dafür verantwortlichen Siemens Mitarbeiter habe. Danke erstmal für deine Bemühung. Wenn das Problem gelöst ist, werde ich es aufjedenfall posten.

Gruß

Jan
 
Hi Jan,

ich behaupte das es an deiner sip.conf liegt.

Wie möchtest du den Überhaupt den Asterisk mit deiner Siemensanlage verbinden?

Registriert sich asterisk als extension an der Hipath oder die Hipath als extension am Asterisk?

oder einfach nur über IP-Adressen?

was hsst du den in der Hipath eingestellt wo er die rufe hinschicken soll?

Gruß

Alex
 
Hey Alex,

Problem ist das die Hipath Anlage im Jahr 2006 von Siemens konfiguriert und wir darüber keine Dokumentation haben. Zu damaliger Zeit war ich noch nicht bei meinem jetzigen Arbeitgeber angestellt und 2 Vorgänger haben schon versucht das Problem zu lösen, es nun aber an mich wegen Jobwechsel weitergegeben =).

Derzeitiger Stand: Unsere internen Nummer haben normalerweise 4 Ziffern. Für SIP wurde von Siemens einfach an den normalen Rufnummernblock noch 3 Ziffern drangehängt (3761XXX), sodass 1000 Nummern zur Verfügung stehen. Wie die Hipath Ihre Anrufe weiterleitet weis ich leider nicht. Wenn man die 3761 auf einem normalen Telefon wählt passiert nichts, er erwartet noch die 3 Ziffern (z.B. 001). Danach kommt sofort das "Besetzt"-Zeichen.

Ich gehe davon aus, dass die Hipath meine Asterisk IP kennt, sicher bin ich mir aber nicht. Ob ich mich allerdings gegenüber der Hipath als Extension verhalte oder ich sie als Extension sehe, vermag ich nicht zu sagen.
Ich hoffe ich konnte dir ein wenig Klarheit verschaffen =).

Gruß
Jan
 
Hi,

jup jetzt besteht klarheit ;).

Dann hilft woll doch nurnoch der Siemens Techniker um dem problem auf die schliche zu kommen.

Viel erfolg hierbei.


Gruß

Alex
 
Da der Siemens Techniker immer noch nicht hier war und sich das Problem angeschaut hat, hab ich mir selbst nochmal die Mitschnitte aus Wireshark angeschaut und bemerkt dass der Asterisk immer ein TCP-RST auf die TCP Anfrage von der SIP Baugruppe zurückschickt. Wenn ich meinen Asterisk mit nmap scanne zeigt er nicht mal den Port 5060 an, dass er offen ist, weswegen er immer ein RST zurückschickt.
Wie kann ich meinen Asterisk umstellen dass er auf tcp auf dem port 5060 hört und nicht nur auf udp. Den Patch der das erledigen soll hab ich zwar gefunden aber geht das auch wenn man den asterisk aus den Paketquellen installiert hat ?

Gruß
Jan
 
Hey,
nun kommen die Anrufe am Asterisk an, es lag am TCP Problem.
Der Asterisk hörte vorher immer nur auf UDP, da ich aber jetzt
1.6 aufgesetzt habe kann er nun auch TCP. Bloß das Problem dass
er die Anrufe falsch weiterleitet besteht weiterhin. Angenommen
ich rufe die 3761777 vom Telefon an, dann leitet die Hipath die Nummer
00621181-1777 an meinen Asterisk Server weiter und schneidet
die 376 ab. Nun gibt es aber schon die 1777 in unserem internen Telefonnetz.
Der Anruf geht also als erstes vom internen Telefonnetz über den AsteriskServer und dann wieder zurück ins interne Telefonnetz.

Hier mal ein Beispiel was ich schon probiert habe + die CLI Ausgabe vom Asterisk über den Anruf:

extension.conf
Code:
[lokal]
; Erreichbarkeit der Nebenstellen 3761XXX
; untereinander herstellen

exten => _3761XXX,1,NoCDR()
exten => _3761XXX,n,Dial(SIP/${EXTEN},30,r)

[sipgate_out]
; Diesen Context verwenden wir zum waehlen von abgehenden
; Rufnummern üen Sipgate Account 3760000

exten => _0.,1,Dial(SIP/${EXTEN}@3760000,45,r)
exten => _ZX.,1,Dial(SIP/00621181${EXTEN}@3760000,45,r)



[ankommend]
; alle Anrufe mit einer ID XXXX sollen an das SIP Endgeraet signalisiert werden

exten => 006211811777,1,Dial(SIP/1777,30,r)
;exten => _X.,1,Noop(Anruf fuer ${EXTEN})  

; --------------------------------------------------------------------
;
; hier kommt der default-Context, in dem alle Geraete in der
; Grundkonfiguration erstmal laufen.
; Alle Geraete kön sich gegenseitig anrufen

[default]
include => lokal
include => sipgate_out

cli
Code:
   == Using SIP RTP CoS mark 5
  == Using UDPTL CoS mark 5
    -- Executing [1777@default:1] Dial("SIP/Asterisk-IP:5060-00000000", "SIP/006211811777@3760000,45,r") in new stack
  == Using SIP RTP CoS mark 5
  == Using UDPTL CoS mark 5
    -- Called 006211811777@3760000
    -- SIP/3760000-00000001 is ringing

Wo liegt mein Fehler? Ich würde mich sehr freuen wenn mir jemand antwortet.
Danke schon einmal im voraus.

Gruß
Jan
 
wo befindet sich das tutorial von betateilchen?
die suche hat mir nicht weiter geholfen.

vielen dank
 
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.