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:)
 
Kostenlos!

Statistik des Forums

Themen
248,876
Beiträge
2,303,715
Mitglieder
378,543
Neuestes Mitglied
Borgphone