2017-04-14 3 views
0

TMモジュールのドキュメント(Q値はmysqlテーブルに優先度の重みとして格納されています)に記述されているシンプルなシリアルフォークを実装しています。Kamailio 4.4 seturiは明示的な文字列のみを受け入れますか?

私は、seturiで使用する新しいURIを構築するために使用している変数がすべて正しくなっていることをxlogの広範な使用を通じて検証しました。私は非常に同様のフォーマットされたパラメータを取ることに何の問題もない私のSQLクエリ結果を反復する後続のwhileループでappend_branch呼び出しを使用します。しかし、私がKamailioを再起動すると、文字列が必要であることがわかります。 consoleから対応する行は単にseturi呼び出しです。私は文字列としてキャストしようとしましたが、それは4.4の一部ではないようです(または私の構文が間違っています)。

私はURI文字列を構築し、avpに格納することについて考えましたが、私は同じ問題があると思います。 (basedest)Iは、$ VARを入れたときに、当然のことながら

<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 

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

をと設定をロードしようとしたとき、それが出力されているもの:

参考

が、これは私がやっているものです二重引用符で囲まれていれば、文字通り文字列として解釈されます。一重引用符も同様に動作します。これを回避するためにできることはありますか?明示的にハードコーディングされた文字列を入力すると、ルーティングが正常に機能しているとうれしいです。上記のような非常に簡単なことをしようとすると、それは気分が悪くなります。可能であれば、私は最初にyum repoからKamailioをつかんでいるので、私は更新を避けたいと思います。

ありがとうございました - これは私をうまくつかまえています。

答えて

0

明らかに、新しい問題ではありません。私はそれを回避するために私ができることを見つけ出しました。

参考までに、seturiと$ ru疑似変数は同じものを指します。だから、基本的にはあなただけ行いたい:

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

これは、私はもともとTMモジュールのマニュアルに基づいて前に行うようにしようとしていた同じことを達成するであろう。シリアルフォークでは、いくつかのappend_branchコールを発行するのがいいです。

関連する問題