FreePBX an Fritzbox 7490

NoBrain

Neuer User
Mitglied seit
9 Feb 2008
Beiträge
40
Punkte für Reaktionen
0
Punkte
6
Hallo,

ich habe eine FreePBX an eine Fritzbox gehängt, d.h. in der FB "Eigene Rufnummern" und Telefongeräte erstellt und diese mit Trunks in der FreePBX verbunden. Die Registrierung hat soweit funktioniert, aber folgende Probleme bekomme ich zwischen FB und FreePBX nicht gelöst:

Inbound Routes
Solange ich keine DID definiere, kommen Anrufe an. Möchte ich eigehende Anrufe aber routen, kommen sie nicht mehr durch.

Outbound Routes
Die kommen nicht mal bis zur Fritzbox. Registriere ich einen Trunk aber direkt beim Provider funktioniert der Outbound Route einwandfrei.

Beide Probleme hängen also mit der FB zusammen. Hat jemand mit dieser Konstellation Erfahrung und weiss, was man bei den Einstellungen beachten muss?

Thanks
 
Habe seit einiger Zeit (ich brauche das nicht so oft, darum kann ich nicht genau sagen, ab wann) das gleiche Problem. Ich glaube, es hängt mit Fritz!OS 06.83 zusammen. FreePBX ist bei mir Version 14.0.1.4.

Ich bekomme dies auf der Asterisk-Konsole angezeigt. Ein Test mit SIP statt PJSIP hat keine Änderung gebracht.
Code:
Called PJSIP/**620@FRITZBOX
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [s@macro-dialout-trunk:31] NoOp("PJSIP/61-00000013", "Dial failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE = 1") in new stack
    -- Executing [s@macro-dialout-trunk:32] GotoIf("PJSIP/61-00000013", "0?continue,1:s-CHANUNAVAIL,1") in new stack
 
Da ich die Vorgehensweisen des neuen Forum-Betreibers nicht gut heiße, stehen meine Beiträge hier nicht weiter zur Verfügung.
 
Zuletzt bearbeitet von einem Moderator:
Hallo

Erst mal vielen Dank für die Rückmeldungen. Ich habe folgendes zur Inbound Route rausgefunden:
Wenn FreePBX an der FB registriert ist, kommt bei der FreePBX DID=s an, was sich ja dann nicht routen lässt.
 
Ich habe die gleiche Beobachtung wie NoBrain gemacht, was die Registrierung der Fritzbox angeht. Hier mal Screenshots von meiner Trunk-Konfiguration

Bildschirmfoto 2017-08-06 um 16.34.02.pngBildschirmfoto 2017-08-06 um 16.33.15.png Bildschirmfoto 2017-08-06 um 16.33.44.png

Und hier die Konsolen-Ausgabe, wenn ich über das am Asterisk angeschlossene Gigaset die Nebenstelle 620 an der Fritzbox anrufen will. Ich kann leider momentan nicht von der Fritzbox her meinen Asterisk (Nebenstelle 621) anrufen, da die Fritzbox nicht in meiner Nähe ist.

Code:
pbx*CLI>
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected
  == Setting global variable 'SIPDOMAIN' to 'pbx.example.com'
    -- Executing [**620@from-internal:1] Macro("PJSIP/61-0000002a", "user-callerid,LIMIT,EXTERNAL,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("PJSIP/61-0000002a", "TOUCH_MONITOR=1502029717.49") in new stack
    -- Executing [s@macro-user-callerid:2] Set("PJSIP/61-0000002a", "AMPUSER=61") in new stack
    -- Executing [s@macro-user-callerid:3] GotoIf("PJSIP/61-0000002a", "0?report") in new stack
    -- Executing [s@macro-user-callerid:4] ExecIf("PJSIP/61-0000002a", "1?Set(__REALCALLERIDNUM=61)") in new stack
    -- Executing [s@macro-user-callerid:5] Set("PJSIP/61-0000002a", "AMPUSER=61") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("PJSIP/61-0000002a", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:7] Set("PJSIP/61-0000002a", "AMPUSERCIDNAME=Gigaset") in new stack
    -- Executing [s@macro-user-callerid:8] GotoIf("PJSIP/61-0000002a", "0?report") in new stack
    -- Executing [s@macro-user-callerid:9] Set("PJSIP/61-0000002a", "AMPUSERCID=61") in new stack
    -- Executing [s@macro-user-callerid:10] Set("PJSIP/61-0000002a", "__DIAL_OPTIONS=Ttr") in new stack
    -- Executing [s@macro-user-callerid:11] Set("PJSIP/61-0000002a", "CALLERID(all)="Gigaset" <61>") in new stack
    -- Executing [s@macro-user-callerid:12] GotoIf("PJSIP/61-0000002a", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:13] ExecIf("PJSIP/61-0000002a", "1?Set(GROUP(concurrency_limit)=61)") in new stack
    -- Executing [s@macro-user-callerid:14] ExecIf("PJSIP/61-0000002a", "0?Set(CHANNEL(language)=)") in new stack
    -- Executing [s@macro-user-callerid:15] GotoIf("PJSIP/61-0000002a", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,29)
    -- Executing [s@macro-user-callerid:29] Set("PJSIP/61-0000002a", "CALLERID(number)=61") in new stack
    -- Executing [s@macro-user-callerid:30] Set("PJSIP/61-0000002a", "CALLERID(name)=Gigaset") in new stack
    -- Executing [s@macro-user-callerid:31] GotoIf("PJSIP/61-0000002a", "0?cnum") in new stack
    -- Executing [s@macro-user-callerid:32] Set("PJSIP/61-0000002a", "CDR(cnam)=Gigaset") in new stack
    -- Executing [s@macro-user-callerid:33] Set("PJSIP/61-0000002a", "CDR(cnum)=61") in new stack
    -- Executing [s@macro-user-callerid:34] Set("PJSIP/61-0000002a", "CHANNEL(language)=de") in new stack
    -- Executing [**620@from-internal:2] Gosub("PJSIP/61-0000002a", "sub-record-check,s,1(out,**620,dontcare)") in new stack
    -- Executing [s@sub-record-check:1] GotoIf("PJSIP/61-0000002a", "0?initialized") in new stack
    -- Executing [s@sub-record-check:2] Set("PJSIP/61-0000002a", "__REC_STATUS=INITIALIZED") in new stack
    -- Executing [s@sub-record-check:3] Set("PJSIP/61-0000002a", "NOW=1502029717") in new stack
    -- Executing [s@sub-record-check:4] Set("PJSIP/61-0000002a", "__DAY=06") in new stack
    -- Executing [s@sub-record-check:5] Set("PJSIP/61-0000002a", "__MONTH=08") in new stack
    -- Executing [s@sub-record-check:6] Set("PJSIP/61-0000002a", "__YEAR=2017") in new stack
    -- Executing [s@sub-record-check:7] Set("PJSIP/61-0000002a", "__TIMESTR=20170806-162837") in new stack
    -- Executing [s@sub-record-check:8] Set("PJSIP/61-0000002a", "__FROMEXTEN=61") in new stack
    -- Executing [s@sub-record-check:9] Set("PJSIP/61-0000002a", "__MON_FMT=wav") in new stack
    -- Executing [s@sub-record-check:10] NoOp("PJSIP/61-0000002a", "Recordings initialized") in new stack
    -- Executing [s@sub-record-check:11] ExecIf("PJSIP/61-0000002a", "0?Set(ARG3=dontcare)") in new stack
    -- Executing [s@sub-record-check:12] Set("PJSIP/61-0000002a", "REC_POLICY_MODE_SAVE=") in new stack
    -- Executing [s@sub-record-check:13] ExecIf("PJSIP/61-0000002a", "0?Set(REC_STATUS=NO)") in new stack
    -- Executing [s@sub-record-check:14] GotoIf("PJSIP/61-0000002a", "3?checkaction") in new stack
    -- Goto (sub-record-check,s,17)
    -- Executing [s@sub-record-check:17] GotoIf("PJSIP/61-0000002a", "1?sub-record-check,out,1") in new stack
    -- Goto (sub-record-check,out,1)
    -- Executing [out@sub-record-check:1] NoOp("PJSIP/61-0000002a", "Outbound Recording Check from 61 to **620") in new stack
    -- Executing [out@sub-record-check:2] Set("PJSIP/61-0000002a", "RECMODE=dontcare") in new stack
    -- Executing [out@sub-record-check:3] ExecIf("PJSIP/61-0000002a", "1?Goto(routewins)") in new stack
    -- Goto (sub-record-check,out,7)
    -- Executing [out@sub-record-check:7] Gosub("PJSIP/61-0000002a", "recordcheck,1(dontcare,out,**620)") in new stack
    -- Executing [recordcheck@sub-record-check:1] NoOp("PJSIP/61-0000002a", "Starting recording check against dontcare") in new stack
    -- Executing [recordcheck@sub-record-check:2] Goto("PJSIP/61-0000002a", "dontcare") in new stack
    -- Goto (sub-record-check,recordcheck,3)
    -- Executing [recordcheck@sub-record-check:3] Return("PJSIP/61-0000002a", "") in new stack
    -- Executing [out@sub-record-check:8] Return("PJSIP/61-0000002a", "") in new stack
    -- Executing [**620@from-internal:3] ExecIf("PJSIP/61-0000002a", "0 ?Set(CDR(accountcode)=)") in new stack
    -- Executing [**620@from-internal:4] Set("PJSIP/61-0000002a", "MOHCLASS=default") in new stack
    -- Executing [**620@from-internal:5] Set("PJSIP/61-0000002a", "_NODEST=") in new stack
    -- Executing [**620@from-internal:6] Macro("PJSIP/61-0000002a", "dialout-trunk,3,**620,,off") in new stack
    -- Executing [s@macro-dialout-trunk:1] Set("PJSIP/61-0000002a", "DIAL_TRUNK=3") in new stack
    -- Executing [s@macro-dialout-trunk:2] GosubIf("PJSIP/61-0000002a", "0?sub-pincheck,s,1()") in new stack
    -- Executing [s@macro-dialout-trunk:3] GotoIf("PJSIP/61-0000002a", "0?disabletrunk,1") in new stack
    -- Executing [s@macro-dialout-trunk:4] Set("PJSIP/61-0000002a", "DIAL_NUMBER=**620") in new stack
    -- Executing [s@macro-dialout-trunk:5] Set("PJSIP/61-0000002a", "DIAL_TRUNK_OPTIONS=Ttr") in new stack
    -- Executing [s@macro-dialout-trunk:6] Set("PJSIP/61-0000002a", "OUTBOUND_GROUP=OUT_3") in new stack
    -- Executing [s@macro-dialout-trunk:7] GotoIf("PJSIP/61-0000002a", "1?nomax") in new stack
    -- Goto (macro-dialout-trunk,s,9)
    -- Executing [s@macro-dialout-trunk:9] GotoIf("PJSIP/61-0000002a", "0?skipoutcid") in new stack
    -- Executing [s@macro-dialout-trunk:10] Set("PJSIP/61-0000002a", "DIAL_TRUNK_OPTIONS=T") in new stack
    -- Executing [s@macro-dialout-trunk:11] Macro("PJSIP/61-0000002a", "outbound-callerid,3") in new stack
    -- Executing [s@macro-outbound-callerid:1] ExecIf("PJSIP/61-0000002a", "0?Set(CALLERPRES(name-pres)=)") in new stack
    -- Executing [s@macro-outbound-callerid:2] ExecIf("PJSIP/61-0000002a", "0?Set(CALLERPRES(num-pres)=)") in new stack
    -- Executing [s@macro-outbound-callerid:3] ExecIf("PJSIP/61-0000002a", "0?Set(REALCALLERIDNUM=61)") in new stack
    -- Executing [s@macro-outbound-callerid:4] GotoIf("PJSIP/61-0000002a", "1?normcid") in new stack
    -- Goto (macro-outbound-callerid,s,7)
    -- Executing [s@macro-outbound-callerid:7] Set("PJSIP/61-0000002a", "USEROUTCID=") in new stack
    -- Executing [s@macro-outbound-callerid:8] Set("PJSIP/61-0000002a", "EMERGENCYCID=") in new stack
    -- Executing [s@macro-outbound-callerid:9] Set("PJSIP/61-0000002a", "TRUNKOUTCID="Asterix" <621>") in new stack
    -- Executing [s@macro-outbound-callerid:10] GotoIf("PJSIP/61-0000002a", "1?trunkcid") in new stack
    -- Goto (macro-outbound-callerid,s,15)
    -- Executing [s@macro-outbound-callerid:15] ExecIf("PJSIP/61-0000002a", "1?Set(CALLERID(all)="Asterix" <621>)") in new stack
    -- Executing [s@macro-outbound-callerid:16] ExecIf("PJSIP/61-0000002a", "0?Set(CALLERID(all)=)") in new stack
    -- Executing [s@macro-outbound-callerid:17] ExecIf("PJSIP/61-0000002a", "0?Set(CALLERID(all)=)") in new stack
    -- Executing [s@macro-outbound-callerid:18] ExecIf("PJSIP/61-0000002a", "0?Set(CALLERPRES(name-pres)=prohib_passed_screen)") in new stack
    -- Executing [s@macro-outbound-callerid:19] ExecIf("PJSIP/61-0000002a", "0?Set(CALLERPRES(num-pres)=prohib_passed_screen)") in new stack
    -- Executing [s@macro-outbound-callerid:20] Set("PJSIP/61-0000002a", "CDR(outbound_cnum)=621") in new stack
    -- Executing [s@macro-outbound-callerid:21] Set("PJSIP/61-0000002a", "CDR(outbound_cnam)=Asterix") in new stack
    -- Executing [s@macro-dialout-trunk:12] GosubIf("PJSIP/61-0000002a", "1?sub-flp-3,s,1()") in new stack
    -- Executing [s@sub-flp-3:1] ExecIf("PJSIP/61-0000002a", "1?Set(TARGET_FLP_3=620)") in new stack
    -- Executing [s@sub-flp-3:2] GotoIf("PJSIP/61-0000002a", "1?match") in new stack
    -- Goto (sub-flp-3,s,4)
    -- Executing [s@sub-flp-3:4] Set("PJSIP/61-0000002a", "DIAL_NUMBER=620") in new stack
    -- Executing [s@sub-flp-3:5] Return("PJSIP/61-0000002a", "") in new stack
    -- Executing [s@macro-dialout-trunk:13] Set("PJSIP/61-0000002a", "OUTNUM=620") in new stack
    -- Executing [s@macro-dialout-trunk:14] Set("PJSIP/61-0000002a", "custom=PJSIP") in new stack
    -- Executing [s@macro-dialout-trunk:15] ExecIf("PJSIP/61-0000002a", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)T)") in new stack
    -- Executing [s@macro-dialout-trunk:16] ExecIf("PJSIP/61-0000002a", "0?Set(DIAL_TRUNK_OPTIONS=TM(confirm))") in new stack
    -- Executing [s@macro-dialout-trunk:17] Macro("PJSIP/61-0000002a", "dialout-trunk-predial-hook,") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("PJSIP/61-0000002a", "") in new stack
    -- Executing [s@macro-dialout-trunk:18] GotoIf("PJSIP/61-0000002a", "0?skipcrm") in new stack
    -- Executing [s@macro-dialout-trunk:19] Set("PJSIP/61-0000002a", "__CRM_DIRECTION=OUTBOUND") in new stack
    -- Executing [s@macro-dialout-trunk:20] Set("PJSIP/61-0000002a", "__CRM_DESTINATION=620") in new stack
    -- Executing [s@macro-dialout-trunk:21] Set("PJSIP/61-0000002a", "__CRM_SOURCE=61") in new stack
    -- Executing [s@macro-dialout-trunk:22] AGI("PJSIP/61-0000002a", "sangomacrm.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/sangomacrm.agi
    -- <PJSIP/61-0000002a>AGI Script sangomacrm.agi completed, returning 0
    -- Executing [s@macro-dialout-trunk:23] Set("PJSIP/61-0000002a", "CHANNEL(hangup_handler_push)=crm-hangup,s,1") in new stack
    -- Executing [s@macro-dialout-trunk:24] NoOp("PJSIP/61-0000002a", "CRM Finished") in new stack
    -- Executing [s@macro-dialout-trunk:25] GotoIf("PJSIP/61-0000002a", "0?bypass,1") in new stack
    -- Executing [s@macro-dialout-trunk:26] ExecIf("PJSIP/61-0000002a", "1?Set(CONNECTEDLINE(num,i)=620)") in new stack
    -- Executing [s@macro-dialout-trunk:27] ExecIf("PJSIP/61-0000002a", "1?Set(CONNECTEDLINE(name,i)=CID:621)") in new stack
    -- Executing [s@macro-dialout-trunk:28] ExecIf("PJSIP/61-0000002a", "0?Set(CONNECTEDLINE(name,i)=CID:(Hidden)621)") in new stack
    -- Executing [s@macro-dialout-trunk:29] GotoIf("PJSIP/61-0000002a", "0?customtrunk") in new stack
    -- Executing [s@macro-dialout-trunk:30] Dial("PJSIP/61-0000002a", "PJSIP/620@FRITZBOX,300,T") in new stack
    -- Called PJSIP/620@FRITZBOX
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [s@macro-dialout-trunk:31] NoOp("PJSIP/61-0000002a", "Dial failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE = 1") in new stack
    -- Executing [s@macro-dialout-trunk:32] GotoIf("PJSIP/61-0000002a", "0?continue,1:s-CHANUNAVAIL,1") in new stack
    -- Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
    -- Executing [s-CHANUNAVAIL@macro-dialout-trunk:1] Set("PJSIP/61-0000002a", "RC=1") in new stack
    -- Executing [s-CHANUNAVAIL@macro-dialout-trunk:2] Goto("PJSIP/61-0000002a", "1,1") in new stack
    -- Goto (macro-dialout-trunk,1,1)
    -- Executing [1@macro-dialout-trunk:1] Goto("PJSIP/61-0000002a", "s-INVALIDNMBR,1") in new stack
    -- Goto (macro-dialout-trunk,s-INVALIDNMBR,1)
    -- Executing [s-INVALIDNMBR@macro-dialout-trunk:1] NoOp("PJSIP/61-0000002a", "Dial failed due to trunk reporting Address Incomplete - giving up") in new stack
    -- Executing [s-INVALIDNMBR@macro-dialout-trunk:2] Progress("PJSIP/61-0000002a", "") in new stack
    -- Executing [s-INVALIDNMBR@macro-dialout-trunk:3] Playback("PJSIP/61-0000002a", "ss-noservice,noanswer") in new stack
    -- <PJSIP/61-0000002a> Playing 'ss-noservice.ulaw' (language 'de')
       > 0x7f1368b17090 -- Probation passed - setting RTP source address to 10.0.1.12:5006
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected
    -- Executing [h@from-internal:1] Macro("PJSIP/61-0000002a", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("PJSIP/61-0000002a", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] ExecIf("PJSIP/61-0000002a", "0?Set(CDR(recordingfile)=)") in new stack
    -- Executing [s@macro-hangupcall:4] Hangup("PJSIP/61-0000002a", "") in new stack
  == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'PJSIP/61-0000002a' in macro 'hangupcall'
  == Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/61-0000002a'
    -- PJSIP/61-0000002a Internal Gosub(crm-hangup,s,1) start
    -- Executing [s@crm-hangup:1] NoOp("PJSIP/61-0000002a", "Sending Hangup to CRM") in new stack
    -- Executing [s@crm-hangup:2] NoOp("PJSIP/61-0000002a", "HANGUP CAUSE: 1") in new stack
    -- Executing [s@crm-hangup:3] ExecIf("PJSIP/61-0000002a", "0?Set(__CRM_VOICEMAIL=)") in new stack
    -- Executing [s@crm-hangup:4] NoOp("PJSIP/61-0000002a", "MASTER CHANNEL: 1502029717.49 = 1502029717.49") in new stack
    -- Executing [s@crm-hangup:5] GotoIf("PJSIP/61-0000002a", "0?return") in new stack
    -- Executing [s@crm-hangup:6] Set("PJSIP/61-0000002a", "__CRM_HANGUP=1") in new stack
    -- Executing [s@crm-hangup:7] AGI("PJSIP/61-0000002a", "sangomacrm.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/sangomacrm.agi
    -- <PJSIP/61-0000002a>AGI Script sangomacrm.agi completed, returning 0
    -- Executing [s@crm-hangup:8] Return("PJSIP/61-0000002a", "") in new stack
  == Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/61-0000002a'
    -- PJSIP/61-0000002a Internal Gosub(crm-hangup,s,1) complete GOSUB_RETVAL=
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected
pbx*CLI>

PS. Ich glaube, das Problem ist aufgetaucht, als die Fritzbox verlangte, einen extra Benutzernamen (statt der Rufnummer) anzugeben.
 
Da ich die Vorgehensweisen des neuen Forum-Betreibers nicht gut heiße, stehen meine Beiträge hier nicht weiter zur Verfügung.
 
Zuletzt bearbeitet von einem Moderator:
Unabhängig davon, ob ** vorangestellt wird, der Anruf kommt nicht durch.
Code:
-- Executing [s@macro-dialout-trunk:28] ExecIf("PJSIP/61-00000034", "0?Set(CONNECTEDLINE(name,i)=CID:(Hidden)621)") in new stack
    -- Executing [s@macro-dialout-trunk:29] GotoIf("PJSIP/61-00000034", "0?customtrunk") in new stack
    -- Executing [s@macro-dialout-trunk:30] Dial("PJSIP/61-00000034", "PJSIP/**620@FRITZBOX,300,T") in new stack
    -- Called PJSIP/**620@FRITZBOX
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [s@macro-dialout-trunk:31] NoOp("PJSIP/61-00000034", "Dial failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE = 1") in new stack
    -- Executing [s@macro-dialout-trunk:32] GotoIf("PJSIP/61-00000034", "0?continue,1:s-CHANUNAVAIL,1") in new stack
    -- Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
    -- Executing [s-CHANUNAVAIL@macro-dialout-trunk:1] Set("PJSIP/61-00000034", "RC=1") in new stack
    -- Executing [s-CHANUNAVAIL@macro-dialout-trunk:2] Goto("PJSIP/61-00000034", "1,1") in new stack
    -- Goto (macro-dialout-trunk,1,1)
    -- Executing [1@macro-dialout-trunk:1] Goto("PJSIP/61-00000034", "s-INVALIDNMBR,1") in new stack
    -- Goto (macro-dialout-trunk,s-INVALIDNMBR,1)
    -- Executing [s-INVALIDNMBR@macro-dialout-trunk:1] NoOp("PJSIP/61-00000034", "Dial failed due to trunk reporting Address Incomplete - giving up") in new stack
    -- Executing [s-INVALIDNMBR@macro-dialout-trunk:2] Progress("PJSIP/61-00000034", "") in new stack
    -- Executing [s-INVALIDNMBR@macro-dialout-trunk:3] Playback("PJSIP/61-00000034", "ss-noservice,noanswer") in new stack
    -- <PJSIP/61-00000034> Playing 'ss-noservice.ulaw' (language 'de')
       > 0x7f1364ace5c0 -- Probation passed - setting RTP source address to 10.0.1.12:5012
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected
 
Ein Problem konnte ich lösen. Nachdem ich bei pjsip Settings > Advanced > From User den Fritzbox-Benutzer eingetragen hatte, konnte ich raustelefonieren.
Das Problem, dass bei FreePBX DID=s ankommt bleibt.
Ich hatte versucht sip:[621]@fritz.box:5060 als Client-URI einzugeben, hat aber nicht geholfen. Was soll da reinkommen?
 
Danke für deine Screenshots! Hatte auch das "s" Problem mit der Fritz!Box - und konnte es ebenfalls durch den contact_user lösen. Dummerweise habe ich deinen Post erst danach gesehen und selber vorher lange rumprobiert und gesucht :)

Ein Problem habe ich aber noch und wollte frage ob das denn bei Dir wirklich geht: Wenn ich raustelefoniere über den PJSIP Trunk (im Prinzip genauso konfiguriert wie bei Dir auf den Screenshots) dann habe ich ein seltsames Audio Problem:
- Rufe ich ein O2 Handy an funktioniert alles einwandfrei
- Rufe ich hingegen testweise die Telekom Hotline an (0800-3301000), höre ich nichts - ob die mich hören können weiß ich natürlich nicht
- Rufe ich eine dus.net Rufnummer an und nehme dort an kann ich am Telekom (PJSIP) Anschluss auch nichts hören, am dus.net Telefon ist jedoch der Ton des Telekom PJSIP Mikrophons zu hören: Allerdings total verzerrt und viel zu "dunkel".

Funktioniert bei Dir alles mit deiner Konfiguration oben wie im Screenshot? Frage mich ob ich hier der einzige bin :)
Mit einem chan_sip zur Fritz!Box (und weiterhin PJSIP für die lokalen Endgeräte) geht Audio bei mir einwandfrei, aber ich würde gerne PJSIP nutzen dafür.

Habe schon manuell direct_media=no an diversen Stellen hinzugefügt, das scheint es nicht zu sein.
Wenn ich mir mit "core show channel PJSIP/pj_TRUNKNAME-00000010" Details zum ausgehenden Channel anschaue kann ich dort keinen Unterschied erkennen zwischen dem funktionierenden Gespräch zum O2 Handy und dem verzerrten One-Way-Audio Gespräch zur dus.net Rufnummer. Codec in beiden Fällen g722, alles identisch bis auf UniqueIDs und Datumsstrings und so. Ich versteh die Welt nicht mehr...

Ich hatte auch schon mal probiert mit "asterisk-version-switch" bei FreePBX zwischen Asterisk 13 und 14 zu wechseln - macht keinen Unterschied.
 
Sorry, da kann ich dir nicht helfen. Ich verwende das nur, um intern zwischen FreePBX und FritzBox zu telefonieren. Das geht aber problemlos und in guter Qualität.
 
Schade, aber danke für die super schnelle Antwort.

Falls jemand anderes das auch mal versucht (also PJSIP als Client an einer Fritz!Box IP Nebenstelle) würde mich interessieren wie eure Erfahrungen sind - geht es?

Bei mir 100% massive Audioprobleme - one-way-audio bzw. verzerrt in der anderen Richtung (aber nur bei manchen Gegenstellen).
Habe jetzt mit weiterem Testen herausgefunden dass es geht wenn ich in den PJSIP Trunk Einstellungen für die Fritz!Box den Codec g722 rausnehme und nur alaw verwenden lasse. Dann plötzlich wunderbares Two-Way Audio ohne Verzerrungen - aber halt kein HD Audio mehr. Mit chan_sip geht g722 im Trunk zur Fritz!Box ohne jegliche Probleme!

Ganz ganz seltsam! Ist da echt noch keiner drüber gestolpert? Ich weiß, viele versuchen die Umstellung auf PJSIP noch rauszuzögern so lange es geht :)
[ausprobiert mit Fritz!Box 7490 mit Final Firmware 6.83 sowie mit Labor Firmware 06.88-46046 BETA]
 
Was mir gerade in den Sinn kommt: Wenn du von SIP auf PJSIP umstellst, bzw. umgekehrt, passt du auch die Ports an, bzw. änderst du die Firewall-Einstellungen?
 
Habe die FreePBX Standard Ports: 5060 für PJSIP und 5160 für chan_sip. Sollte eigentlich kein Problem sein - und das lokale Netz ist sowohl in der pjsip Konfiguration "local_net=192.168.7.0/255.255.255.0" als auch in der FreePBX Firewall Konfiguration korrekt freigeschaltet (Box hat 192.168.7.1). Schwierig wird es mit der Firewall Geschichte ja eigentlich immer erst wenn NAT ins Spiel kommt. Und genau das sollte ja in dem Fall wo sich Asterisk an der Fritz!Box anmeldet ja eben gar kein problem sein da alles lokal bleibt...

Auch die Tatsache dass allein eine Codec Änderung das Problem löst scheint mir dagegen zu sprechen dass es ein Firewall/Port Problem ist... Sowas sollte eigentlich vom verwendeten Audio Codec wirklich völlig unabhängig gehen oder nicht gehen.
 
Wow, das ist mal ein langer Thread. Danke für's raussuchen. Der geht ja über 1 1/4 Jahre mit sehr sehr vielen Beiträgen. Nicht alle scheinen das selbe Problem zu haben, aber viele schreiben etwas davon dass Endgeräte mit PJSIP Probleme haben.
" Grandsteam has a HUGE bug in their G722 codec - specifically causing it's RTP timestamps to be all out of sequence (to the point the audio quality can easily become garbage)."
"Yes, still an issue. Tested with .95 Yealink firmware and it is not fixed yet. Grandstream has not fixed it either. Maybe we need to wait until PJSIP is more popular for the firmware developers to start feeling the pressure to get this fixed."

Ist also vermutlich schon ein Fritz!Box Firmware Problem. Was mich nur wundert ist dass die Fritz!Fon App intern wohl auf dem PJSIP Stack basiert - dann müssten die das Problem doch wohl auch haben?
Also ich gehe jetzt mal davon aus dass dies ein nur durch AVM lösbares Problem ist (oder durch die Asterisk Developer, die aber wohl der Meinung sind ihr Code ist der korrekte).

Falls jemand es schafft einen Asterisk Trunk per pjsip+g722 zum Fritz!Box SIP Server hinzukriegen der auch tatsächlich mit unterschiedlichen externen Zielen funktioniert bitte hier melden - ich lasse mich gerne vom Gegenteil überzeugen ;)
 
Nachtrag: Wenn man für den PJSIP Fritz!Box Trunk die Option "asymmetric_rtp_codec=yes" setzt, kann ich die Gegenseite (dus.net oder Telekom 0800-3301000 Hotline) einwandfrei hören. Ohne diese Option ist hier nur Stille.
Auch weiterhin "defekt" selbst mit dieser Option ist der Ton der von Asterisk aus Richtung Fritz!Box geschickt wird => kommt total verzerrt beim Empfänger an so dass nichts verstanden werden kann.

Habe einen Paketmitschnitt mit Wireshark gemacht (mit Option "asymmetric_rtp_codec=yes") und kann folgendes sehen:
Fritz!Box und Asterisk bieten zu Beginn des Rufaufbaus beide G722 und PCMA als Codec an (Asterisk im "INVITE" und Fritz!Box im "Session Progress" Paket) und schicken während dem Rufaufbau G722 Pakete hin&her.
Dann passiert die Rufannahme, Fritz!Box schickt hier ein "Status: 200 OK" Paket in dem jetzt plötzlich nur noch von G711 PCMA die Rede ist - G722 ist hier nun verschwunden!

Ab nun schickt die Fritz!Box G711 PCMA Pakete an Asterisk, welche ich auch einwandfrei hören kann.
Asterisk schickt weiterhin G722 Pakete an die Fritz!Box - was diese allerdings wohl durcheinander bringt und zu verzerrten Audio für die Gegenseite führt.

Die Option ";rtp_symmetric=no ; Enforce that RTP must be symmetric (default: "no")" habe ich auch probiert, diese hat egal ob yes oder no keinen Einfluss auf das Sprachproblem.

Habe einen Bug im Asterisk Bug Tracker eröffnet: ASTERISK-27223
 
Zuletzt bearbeitet:
Hallo,

ich habe eine FreePBX an eine Fritzbox gehängt, d.h. in der FB "Eigene Rufnummern" und Telefongeräte erstellt und diese mit Trunks in der FreePBX verbunden. Die Registrierung hat soweit funktioniert, aber folgende Probleme bekomme ich zwischen FB und FreePBX nicht gelöst:

Inbound Routes
Solange ich keine DID definiere, kommen Anrufe an. Möchte ich eigehende Anrufe aber routen, kommen sie nicht mehr durch.

Outbound Routes
Die kommen nicht mal bis zur Fritzbox. Registriere ich einen Trunk aber direkt beim Provider funktioniert der Outbound Route einwandfrei.

Beide Probleme hängen also mit der FB zusammen. Hat jemand mit dieser Konstellation Erfahrung und weiss, was man bei den Einstellungen beachten muss?

Thanks
Guten Tag..bin relative neu bei freepbx...können Sie mir sagen wie Sie genau die Trunks eingerichtet haben damit Sie mit der fritzbox funkzioniert hatten?
 
Guten Tag..bin relative neu bei freepbx...können Sie mir sagen wie Sie genau die Trunks eingerichtet haben damit Sie mit der fritzbox funkzioniert hatten?
Wieso frägst du genau den User der hier selber Probleme hatte es hinzukriegen? Macht irgendwie wenig sinn?!?

robinsonR hat hier schöne Screenshots gepostet wie es einzurichten ist. Fang mal damit an, füge noch die hier beschrieben den contact_user hinzu und melde dich dann mit dem was noch nicht klappt.
 
  • Like
Reaktionen: robinsonR
ohh sorry hatte leider die screenshots nicht betrachtet.

Vielen dank nochmal
 
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.