2017-04-14 1 views
0

Ich habe an der Implementierung einer einfachen seriellen Verzweigung gearbeitet, die in der Dokumentation des TM-Moduls beschrieben ist (die Q-Werte werden als Priorität in einer mysql-Tabelle gespeichert), wo mein Proxy eine Datenbank abfragt, um zu bestimmen, an welche Domäne weitergeleitet werden soll.Kamailio 4.4 seturi Akzeptiert nur explizite Zeichenfolgen?

Ich habe durch umfangreiche Verwendung von Xlog überprüft, dass eine Variable, die ich verwende, um den neuen URI zu erstellen, um mit Seturi zu verwenden, alles richtig erhält. Ich verwende einen append_branch-Aufruf in einer nachfolgenden while-Schleife, die über meine sql-Abfrageergebnisse iteriert, was bei der Verwendung eines sehr ähnlich formatierten Parameters keine Probleme bereitet. Allerdings, wenn ich Kamailio neu starten will, meckert es mich einfach an, dass eine Schnur erwartet wird. Die Linie, der es von der Konsole entspricht, ist nur der Seturi-Aufruf. Ich habe versucht, als String zu casten, aber das scheint nicht Teil von 4.4 zu sein (oder meine Syntax ist falsch).

Ich habe über den Aufbau der URI-Strings und Speichern in AVP gedacht, aber ich vermute, dass ich das gleiche Problem haben würde.

Als Referenz ist das, was ich tue:

$var(basedest) = "sip:" + $var(number) + "@" + $(dbr(destination=>[0,0]))+ ":" + $var(port); 
seturi($var(basedest)); 

Und was es ausgibt, wenn die Config zu laden versuchen:

<core> [cfg.y:3368]: yyerror_at(): parse error in config file //etc/kamailio/kamailio.cfg, line 570, column 9-22: syntax error 
<core> [cfg.y:3371]: yyerror_at(): parse error in config file //etc/kamailio/kamailio.cfg, line 570, column 23: bad argument, string expected 

Natürlich, wenn ich $ var gesetzt (basedest) in Anführungszeichen wird es buchstäblich als String interpretiert. Einfache Anführungszeichen verhalten sich ähnlich. Kann ich etwas dagegen tun? Wenn ich eine explizite fest codierte Zeichenfolge füttere, ist es glücklich, wie es sein kann, und das Routing funktioniert gut. Wenn ich versuche, etwas sehr einfaches wie das oben genannte zu tun, wird es aufgebracht. Wenn möglich, möchte ich eine Aktualisierung vermeiden, da ich Kamailio anfänglich aus dem Yum Repo holte.

Vielen Dank im Voraus - das hat mich eine ganze Weile gestört.

Antwort

0

Offenbar kein neues Problem. Ich fand heraus, was ich tun kann, um es zu umgehen.

Als Referenz verweisen seturi und $ ru pseudovariable auf die gleiche Sache. Also im Grunde würden Sie gerade tun:

$var(mynewru) = "sip:[email protected]:5060"; 
$ru = $var(mynewru); 

Dies würde das Gleiche erreiche ich ursprünglich versucht zu tun, bevor basiert auf der Dokumentation des TM-Modul. Für die serielle Verzweigung ist die Ausgabe einiger append_branch-Aufrufe in Ordnung.

Verwandte Themen