TrixBox mit Projektbezogener abgehender Caller ID

marc0902

Neuer User
Mitglied seit
6 Jan 2006
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo liebe Gemeinde,

da mir dieses Forum schon etliche male geholfen hat, will ich auch mal etwas dabei Steuern.

Ich habe lange im Internet gesucht und keine Lösung zu diesem Thema gefunden. Deshalb schreibe ich mal ein kleines How-To.

Folgendes muss in die extensions_custom.conf

[from-internal-custom]

exten => _6655XX,1,Macro(projektlogin|${EXTEN:3})
exten => _665,1,Macro(projektlogout)

[macro-projektlogin]
exten => s,1,Set(GLOBAL(PROJECTNUM)=${ARG1})
exten => s,n,NoOP(Agent an (${ARG1}) angemeldet)
exten => s,n,Playback(/custom/projektanmeldung)
exten => s,n,SayDigits(${ARG1})
exten => s,n,Hangup

[macro-projektlogout]
exten => s,1,Set(GLOBAL(PROJECTNUM)=0)
exten => s,n,NoOP(Agent ist abgemeldet)
exten => s,n,Hangup

Danach muss man in die extensions_override_freepbx.conf folgendes einfügen:

[macro-user-callerid]
include => macro-user-callerid-custom
exten => s,1,ExecIf($[${Projectnum} = 501],Set,REALCALLERIDNUM=Caller ID die gesendet werden soll)
exten => s,n,ExecIf($[${Projectnum} = 502],Set,REALCALLERIDNUM=Caller ID die gesendet werden soll)
exten => s,n,GotoIf($[${Projectnum} = 501]?mitnummer)
exten => s,n,GotoIf($[${Projectnum} = 502]?mitnummer)
exten => s,n,GotoIf($[${Projectnum} = 0]?ohnixdabei)
exten => s,n,GotoIf($[${Projectnum} =]?ohnixdabei)

exten => s,n(mitnummer),Set(CALLERID(all)=${REALCALLERIDNUM})
exten => s,n,Set(CALLERID(number)=${REALCALLERIDNUM})
exten => s,n,GoTo(continue)
exten => s,n(ohnixdabei),Set(AMPUSER=${IF($["foo${AMPUSER}" = "foo"]?${CALLERID(number)}:${AMPUSER})})
exten => s,n,GotoIf($["${CHANNEL:0:5}" = "Local"]?report)
exten => s,n,ExecIf($["${REALCALLERIDNUM:1:2}" = ""],Set,REALCALLERIDNUM=${CALLERID(number)})
exten => s,n,Set(AMPUSER=${DB(DEVICE/${REALCALLERIDNUM}/user)})
exten => s,n,Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)})
exten => s,n,GotoIf($["x${AMPUSERCIDNAME:1:2}" = "x"]?report)
exten => s,n,Set(AMPUSERCID=${IF($["${DB_EXISTS(AMPUSER/${AMPUSER}/cidnum)}" = "1"]?${DB_RESULT}:${AMPUSER})})
exten => s,n,Set(CALLERID(all)="${AMPUSERCIDNAME}" <${AMPUSERCID}>)
exten => s,n,Set(REALCALLERIDNUM=${DB(DEVICE/${REALCALLERIDNUM}/user)})
exten => s,n,ExecIf($["${DB(AMPUSER/${AMPUSER}/language)}" != ""],Set,CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)})
exten => s,n(report),GotoIf($[ "${ARG1}" = "SKIPTTL" ]?continue)
exten => s,n(report2),Set(__TTL=${IF($["foo${TTL}" = "foo"]?64:$[ ${TTL} - 1 ])})
exten => s,n,GotoIf($[ ${TTL} > 0 ]?continue)
exten => s,n,Wait(${RINGTIMER})
exten => s,n,Answer
exten => s,n,Wait(2)
exten => s,n,Playback(im-sorry&an-error-has-occured&with&call-forwarding)
exten => s,n,Macro(hangupcall,)
exten => s,n,Congestion(20)
exten => s,n(continue),Noop(Using CallerID ${CALLERID(all)})
exten => h,1,Macro(hangupcall,)

; end of [macro-user-callerid]

Der veränderbare Teil ist rot markiert.

Nach einem Dialplan Reload sollte das ganze dann funktionieren.

Anmeldung Projekt: 6655XX
Abmeldung: 665

Das funktioniert folgendermaßen: Der Agent meldet sich mit seinem Telefon an dem Projekt an und somit wird eine Globale variabele "Projectnum" gesetzt. In der extension_override_freepbx kann man nun die ausgehenden Caller IDs anpassen die gesetzt werden.

Beim abmelden wird die variable "Projectnum" auf 0 gesetzt und somit wird die in FreePBX eingerichtete Caller ID wieder gesendet.

Ich hoffe dieses kleine How-To hilft jemandem weiter und muss somit nicht so lange suchen wie ich:)
 

Statistik des Forums

Themen
246,295
Beiträge
2,249,597
Mitglieder
373,893
Neuestes Mitglied
Kukkatto
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.