Asterisk 1.8 Hangup Cause 18 mit libpri 1.4.11.5, Config via FreePBX

mkrelli

Neuer User
Mitglied seit
27 Okt 2010
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hi.

Ich habe da ein Problem mit meiner Anlageneinrichtung das ich nicht behoben kriege...
Wähle ich mit meinem SIP Phone eine Nummer, die via dahdi ins Festnetz geleitet werden soll bekomme ich an der Asterisk Konsole die Meldung "got hangup, cause 18". So wie sie auch schon in den vielen anderen Beiträgen zum Hangup Cause 18 Bug beschreiben wurde. Leider kann ich die Patches nicht nutzen, da ich die libpri 1.4.2 wegen des Asterisks in Version 1.8 nicht nehmen kann (es kompiliert dann nicht).

Ist dieser Bug in der besagten libpri Version erneut vorhanden (mit libpri 1.4.12.beta3 passiert das gleiche) oder kann es an meiner Konfiguration liegen?

Folgendes Setup:
- CentOS 5.5
- Asterisk 1.8
- libpri und dahdi (mit vzaphfc patch) in den (fast) aktuellsten Versionen)
- Hardware 1x OpenVox B100P, 1x OpenVox A800P, 1x OpenVox B200P
- Die Karten sind auf einer RiserCard installiert und werden vom System in der o.g. Reihenfolge fehlerfrei geladen. Ein "dahdi show status" auf der Asterisk Konsole zeigt OK für alle Kanäle (bzw. Yellow or Red, an der B200P weil keine Kabel angeschlossen sind ;) )

In FreePBX habe ich einen Dahdi Trunk für die im TE Modus (aber mit Terminierungswiderständen) eingestellte B100P angelegt. Kanäle 1-2 (genau so habe ich es eingetragen). Außerdem eine Route die diesen Trunk nutzt (+0|.)

Ich hatte es aber schon einmal Funktionstüchtig mit nur der B100P und am internen S0 der aktuellen Telefonanlage. Dort habe ich irgend eine Einstellung bezüglich der Callerid in der chan_dahdi.conf gemacht... Ich weiß aber nicht mehr genau was.

Hier nochmal die Ausgabe beim Wählen:
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [0NNNNNNN@from-internal:1] Macro("SIP/41-00000002", "user-callerid,SKIPTTL,") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/41-00000002", "AMPUSER=41") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("SIP/41-00000002", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("SIP/41-00000002", "1?Set(REALCALLERIDNUM=41)") in new stack
-- Executing [s@macro-user-callerid:4] Set("SIP/41-00000002", "AMPUSER=41") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/41-00000002", "AMPUSERCIDNAME=Martin") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/41-00000002", "0?report") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/41-00000002", "AMPUSERCID=NNNNNNN") in new stack
-- Executing [s@macro-user-callerid:8] Set("SIP/41-00000002", "CALLERID(all)="Martin" <NNNNNNN>") in new stack
-- Executing [s@macro-user-callerid:9] GotoIf("SIP/41-00000002", "1?continue") in new stack
-- Goto (macro-user-callerid,s,18)
-- Executing [s@macro-user-callerid:18] NoOp("SIP/41-00000002", "Using CallerID "Martin" <NNNNNNN>") in new stack
-- Executing [0NNNNNNN@from-internal:2] NoOp("SIP/41-00000002", "Calling Out Route: to-isdn") in new stack
-- Executing [0NNNNNNN@from-internal:3] Set("SIP/41-00000002", "MOHCLASS=default") in new stack
-- Executing [0NNNNNNN@from-internal:4] Set("SIP/41-00000002", "_NODEST=") in new stack
-- Executing [0NNNNNNN@from-internal:5] Macro("SIP/41-00000002", "record-enable,41,OUT,") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("SIP/41-00000002", "1?check") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] ExecIf("SIP/41-00000002", "0?MacroExit()") in new stack
-- Executing [s@macro-record-enable:5] GotoIf("SIP/41-00000002", "0?Group:OUT") in new stack
-- Goto (macro-record-enable,s,15)
-- Executing [s@macro-record-enable:15] GotoIf("SIP/41-00000002", "0?IN") in new stack
-- Executing [s@macro-record-enable:16] ExecIf("SIP/41-00000002", "1?MacroExit()") in new stack
-- Executing [0NNNNNNN@from-internal:6] Macro("SIP/41-00000002", "dialout-trunk,1,NNNNNNN,") in new stack
-- Executing [s@macro-dialout-trunk:1] Set("SIP/41-00000002", "DIAL_TRUNK=1") in new stack
-- Executing [s@macro-dialout-trunk:2] GosubIf("SIP/41-00000002", "0?sub-pincheck,s,1") in new stack
-- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/41-00000002", "0?disabletrunk,1") in new stack
-- Executing [s@macro-dialout-trunk:4] Set("SIP/41-00000002", "DIAL_NUMBER=NNNNNNN") in new stack
-- Executing [s@macro-dialout-trunk:5] Set("SIP/41-00000002", "DIAL_TRUNK_OPTIONS=tr") in new stack
-- Executing [s@macro-dialout-trunk:6] Set("SIP/41-00000002", "OUTBOUND_GROUP=OUT_1") in new stack
-- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/41-00000002", "1?nomax") in new stack
-- Goto (macro-dialout-trunk,s,9)
-- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/41-00000002", "0?skipoutcid") in new stack
-- Executing [s@macro-dialout-trunk:10] Set("SIP/41-00000002", "DIAL_TRUNK_OPTIONS=") in new stack
-- Executing [s@macro-dialout-trunk:11] Macro("SIP/41-00000002", "outbound-callerid,1") in new stack
-- Executing [s@macro-outbound-callerid:1] ExecIf("SIP/41-00000002", "0?Set(CALLERPRES()=)") in new stack
-- Executing [s@macro-outbound-callerid:2] ExecIf("SIP/41-00000002", "0?Set(REALCALLERIDNUM=NNNNNNN)") in new stack
-- Executing [s@macro-outbound-callerid:3] GotoIf("SIP/41-00000002", "1?normcid") in new stack
-- Goto (macro-outbound-callerid,s,6)
-- Executing [s@macro-outbound-callerid:6] Set("SIP/41-00000002", "USEROUTCID=41") in new stack
-- Executing [s@macro-outbound-callerid:7] Set("SIP/41-00000002", "EMERGENCYCID=") in new stack
-- Executing [s@macro-outbound-callerid:8] Set("SIP/41-00000002", "TRUNKOUTCID=331NNNNNNN") in new stack
-- Executing [s@macro-outbound-callerid:9] GotoIf("SIP/41-00000002", "1?trunkcid") in new stack
-- Goto (macro-outbound-callerid,s,12)
-- Executing [s@macro-outbound-callerid:12] ExecIf("SIP/41-00000002", "1?Set(CALLERID(all)=331NNNNNNN)") in new stack
-- Executing [s@macro-outbound-callerid:13] ExecIf("SIP/41-00000002", "1?Set(CALLERID(all)=41)") in new stack
-- Executing [s@macro-outbound-callerid:14] ExecIf("SIP/41-00000002", "1?Set(CALLERID(all)=331NNNNNNN)") in new stack
-- Executing [s@macro-outbound-callerid:15] ExecIf("SIP/41-00000002", "0?Set(CALLERPRES()=prohib_passed_screen)") in new stack
-- Executing [s@macro-dialout-trunk:12] GosubIf("SIP/41-00000002", "0?sub-flp-1,s,1") in new stack
-- Executing [s@macro-dialout-trunk:13] Set("SIP/41-00000002", "OUTNUM=NNNNNNN") in new stack
-- Executing [s@macro-dialout-trunk:14] Set("SIP/41-00000002", "custom=DAHDI/1-2") in new stack
-- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/41-00000002", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default))") in new stack
-- Executing [s@macro-dialout-trunk:16] Macro("SIP/41-00000002", "dialout-trunk-predial-hook,") in new stack
-- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("SIP/41-00000002", "") in new stack
-- Executing [s@macro-dialout-trunk:17] GotoIf("SIP/41-00000002", "0?bypass,1") in new stack
-- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/41-00000002", "0?customtrunk") in new stack
-- Executing [s@macro-dialout-trunk:19] Dial("SIP/41-00000002", "DAHDI/1-2/XXXXXXX,300,") in new stack
-- Requested transfer capability: 0x00 - SPEECH
-- Called 1-2/XXXXXXX
-- Channel 0/1, span 1 got hangup, cause 18

Hier noch die Konfigurationsdateien:
Anhang anzeigen config.zip

Gibt es etwas was ich übersehen habe, einen Fehler oder so?

Edit: Ich habe gerade noch etwas vergessen: Die B100P hängt natürlich direkt am NTBA, parallel zur aktuellen Telefonanlage. Eingehende anrufe werden auf der Asteriskkonsole nicht protokolliert.

Danke,
Martin.
 
Zuletzt bearbeitet:
Kein libpri bug...

Hi.

Ich habe das Problem jetzt gelöst...
Es hatte nichts mit der libpri, bzw. den früheren Cause 18 bugs zu tun. Die Meldung über den Hangup Cause war schon real... sie heißt ja so viel wie "Leitung nicht angeschlossen".
Die Ursache war ein Problem mit den IRQ Einstellungen. Die B100P hat sich immer eine IRQ mit einem anderen Gerät geteilt und ich konnte sie nicht umstellen. (anderer slot ging auch nicht - siehe oben: installation auf Riser Card). Das ganze ist mir aufgefallen, da ich wegen dem Problem mISDN getestet habe und die Karte dort nicht geladen wurde. (Meldung: HFC PCI: IRQ(11) getting no interrupts during init) Sie hat demnach nicht reagiert... Ich habe nun die Bootoptionen "pci=routeirq" und "irqpoll" zum Kernel hinzugefügt und konnte sofort Telefonieren.

Die Frage die nun bleibt ist, ob das IRQ Polling nicht zu viel CPU Zeit benötigt und wiederum beim Telefonieren probleme auftreten können?

Greets,
Martin.
 
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.