2

私は自分のシステムの adhearsion に接続するためにアスタリスクを使用しています。システムは、次のスクリプトを使用して、sip 番号への呼び出しを発信します。

Adhearsion::OutboundCall.originate number,
  from:                 call_from,
  controller:            controller ,
  controller_metadata:   {id: @id, initiate_from:'outbound'}

アスタリスクの cdr は、コール ステータスを維持するために使用されます。私がかけた番号 (宛先の呼び出し番号) は、cdr レポートに表示されません。:

`id`, `calldate`, `clid`, `src`, `dst`, `dcontext`, `lastapp`, `lastdata`, `duration`, `billsec`, `disposition`, `channel`, `dstchannel`,`amaflags`, `accountcode`, `uniqueid`, `userfield`, `answer`, `end`
'2015-07-03 11:29:21', '9801243867', '9801243867', '1', 'adhearsion-redirect', 'Dial', 'SIP/ncell-out/playback', 5.12455, 5.89977, ' ANSWER', 'SIP/ncell-out-00000002', NULL, 'DOCUMENTATION', NULL, '1435902231.2', NULL, '0000-00-00 00:00:00', '2015-07-03 11:29:21'
'2015-07-03 11:29:26', '9801243867', '9801243867', '1', 'adhearsion-redirect', 'Dial', 'SIP/ncell-out/9771002', 0.000001, 0, 'NO ANSWER', 'SIP/ncell-out-00000003', NULL, 'DOCUMENTATION', NULL, '1435902236.3', NULL, '0000-00-00 00:00:00', '2015-07-03 11:29:26'

アドヒアジョン コール1@adhearsion-redirect、1 つの宛先番号。

 Executing [1@adhearsion-redirect:1] AGI("SIP/ncell-out-00000004", "agi:async") 

adhearsion からコールを発信するときに、cdr で 1 ではなく宛先番号を取得するにはどうすればよいですか?

4

1 に答える 1

0

(コメントするのに十分な担当者がいる場合は、コントローラーコードを投稿して、呼び出しが 1@adhearsion-redirect に到達する方法がわかるようにお願いします)。

adhearsion-redirect コンテキストに進む前に、ヘルパー コンテキストを使用して CDR にデータを格納できるようです。私が見逃している部分は、既存のセットアップヘルパー コンテキストにリダイレクトする方法です。

ヘルパー コンテキストの例を次に示します。私はあなたのコントローラ コードを知らないので、基本的にはDial(Local/1234567890@helper-context)の代わりに作成する必要がありDial(Local/1@adheasion-redirect)ます。コンテキストは次のとおりです。

[helper-context]
exten=_X.,1,Set(CDR(userfield)=${EXTEN})
exten=_X.,n,Goto(1,adhearsion-redirect)

基本的にこれが行うことは、ヘルパーコンテキスト内で任意の拡張子を一致させ、CDR の「ユーザーフィールド」を数値に設定することです。(これを他の CDR フィールドに変更することもできますが、これはログでは NULL であったため、ピッキングの機が熟していました。) 次に、adhearsion-redirect コンテキストに転送します。上に示したものを使用するDialと、CDR のユーザーフィールドが 1234567890 に設定されるか、ダイヤルしたい任意の番号に設定されます。

于 2015-07-18T06:34:55.527 に答える