Puncte:0

Redirecționarea antetelor SIP cu asterisc (PJSIP)

drapel ru

Încerc să redirecționez un anumit antet de intrare către celălalt segment al apelului, dar nu îmi dau seama cum să transmit valoarea antetului din partea de intrare către handler-ul de pre-apelare

[adăugare]
exten => addheader,1,Verbose ("Setarea antetului")
exten => addheader,1,Verbose(${somevar}) ; Variabila „somevar” nu mai există
exten => addheader,n,Set(PJSIP_HEADER(add,X-MyHeader)=test)
exten => addheader,n,Set(PJSIP_HEADER(add,X-MyHeader2)=${somevar})
exten => addheader,n,Return()

[intrat]
exten => _+4600.,1,Sonerie
exten => _+4600.,n,Set(somevar=${PJSIP_HEADER(citește,TheHeaderIWantToForward)})
exten => _+4600.,n,Verbose(${somevar}) ; Imprimă valoarea corectă
exten => _+4600.,n,Dial(PJSIP/${EXTEN:1},,b(addheaders^addheader^1))
exten => _+4600.,n,Hangup

Am reușit să adaug X-MyHeader la segmentul apelului de ieșire (ca documentație cu asterisc arată cum să), dar cum pot trece de fapt valoarea celuilalt context? Nu pot citi variabila din „[addheaders]”, și pot citi doar anteturile din „[incoming]”

Puncte:1
drapel by

Puteți folosi _VARIABLE: https://wiki.asterisk.org/wiki/display/AST/Variable+Inheritance

[handler]
exten => addheader,1,NoOp(Valoarea este ${somevar})
același => n,Set(PJSIP_HEADER(add,X-myheader=${somevar})
același => n,Return()

[intern]
exten => 6010,1,NoOp(Test)
același => n,Set(_somevar=${PJSIP_HEADER(citește,X-myheader)})
același => n,NoOp(Valoarea este ${somevar})
același => n, Dial(PJSIP/6010,,b(handler^addheader^1))
același => n,închidere()
Puncte:0
drapel ru

Nu știu dacă acesta a fost modul „corect” de a face acest lucru, dar am rezolvat-o acceptând extensii cu caractere metalice în contextul headers-urilor:

[adăugare]
exten => _.,1,Set(PJSIP_HEADER(adăugați,X-header-to-be-forwarded)=${EXTEN})
exten => _.,n,Return()

[intrat]
exten => _+4600.,1,Sonerie
exten => _+4600.,2,Set(customheader=${PJSIP_HEADER(citește,X-header-de-a-fi redirecționat)})
exten => _+4600.,3,GotoIf($["${customheader}"=""]?7:) ; Omiteți adăugarea antetului dacă este gol
exten => _+4600.,4,Dial(PJSIP/${EXTEN:1},,b(addheaders^${customheader}^1))
exten => _+4600.,5,GoTo(9))
exten => _+4600.,6,Dial(PJSIP/${EXTEN:1})
exten => _+4600.,7,Hangup

Aceasta are unele limitări, de exemplu „." sau "," nu poate fi folosit, dar ne-a rezolvat problema.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.