0

私はアスタリスクを初めて使用するので、どんな助けでも大歓迎です。

転送された通話の CDR ログ テーブルにリモート パーティ ID (CONNECTEDLINE) を保存しようとしています。ブラインド転送では、リモート パーティ ID がsrcフィールドの発信者 ID として取得されるため、問題はありません。

在席転送では、元の発信者 ID が失われます。

転送方法は次のとおりです。

  1. A が B に電話する (A が B と話している)
  2. BがAを抱えてCを呼ぶ(BがCと会話中)
  3. B が A を C に転送する (A が C と話している)

現在、CDR テーブルで 2 つのレコードを取得しています。1 つは最初の呼び出し (A<-B) 用で、もう 1 つは 2 番目の呼び出し (B<-C および A<-C) 用です。ポイントは、A への参照を失った 2 番目の CDR にあります。

2番目のCDRに相手ID(A)を保存したいです。カスタム フィールドを CDR テーブルに追加しました ( connectedID)。

私はいくつかの設定ファイルの編集について読んでいて、この種の文を追加しています:

"exten => s,1,set(CDR(connectedID)=${CONNECTEDLINE})"

しかし、私はかなり迷っています。これらのコード行をファイルのどの部分に配置する必要があるかさえ、どのファイルを編集する必要があるのか​​ わかりません。

誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

0

AMI 経由で通話イベントを読み取る (@arheops に感謝) リモート パーティ ID を CDR に保存する方法を管理しています。

hangupイベントでは、フィールドにリモート パーティ ID が表示されますConnectedLineNum

このような転送された通話の場合:

  • 401 コール 208
  • 208 コール 308 (保留中の 401)
  • 208 が元の通話を 308 に転送します (401 が 308 と通話中)

これはhangup、通話の最終セグメントのイベント サンプルです。

Event Hangup Privilege: call,all Channel: SIP/308-00000665 Uniqueid: 1421757614.1658 CallerIDNum: 208 CallerIDName: Juan Ruiz ConnectedLineNum: 401 ConnectedLineName: Test1 Cause: 16 Cause-txt: Normal Clearing

元の呼び出し元はConnectedLineNum変数に格納されます。

そこで、次の行をハングアップ セクションに追加します。

exten => s,1,Set(CDR(connectedid)=${CONNECTEDLINE(number)})

私は Elastix 2.4.0 を使用しているので、ファイル内の[macro-hangupcall]マクロの先頭にこの行を追加しました。extensions_override_elastix.conf

他のアスタリスク ベースのディストリビューションでは、別のファイルにある必要があります。

于 2015-01-20T13:03:01.603 に答える