Call Flowを取り扱うときにまず覚えておきたい技術がTranslation Ruleの書き方とその適用方法である。
Translation Ruleはまずさまざまな設定(port, dial-peerなど)にルールを設定できる。また書き換えはcalling party, called party, redirectすべてに適用できる。かつ正規表現を利用しているの初めての人でも少し練習すればすぐに書き換えができる。またtestコマンドがあるので設定したルールが期待通りに動いているかの検証もすぐにできる。
Translation Ruleは下記の3つの要素から成り立つ。
- Translation Rule
- Translation Profile
- Interface
Translation Ruleは以下のように記述する
voice translation-rule 1 rule 1 /0312345678/ /0312340000/ rule 2 /.*/ /0312341111/
上記の例ではrule 1-1でまず0312345678は0312340000に変換される。次にそれ以外の番号はrule 1-2ですべての番号が0312341111に変換される。
このtranslation ruleを組み合わせてtranslation profileを作成する
voice translation-profile CUCM-Calling translate calling 2
このプロファイルではcalling / calledのいづれを変換するか指定する。CUCM-callingプロファイルはtranslate callingが指定されている。これは呼び出し元の電話番号に適用される。つまり自分の電話番号が0312345678であれば0312340000に変換される。またその他複数の番号を持っていても電話を掛けた先にはrule 1-2が適用されて相手から見ると、0312341111が表示される。
そしてこのtranslation profileを利用するインタフェースに設定する。
! dial-peer voice 1 pots description PSTN Outgoing translation-profile outgoing CUCM-Calling destination-pattern 0.T port 0/0/0:23
上記の例では外線0発信をするport 0/0/0~23にすべてのCUCM-Callingプロファイルを設定している。例えばプロファイルを作成したが特定の特定のポートを利用している場合には、プロファイルを設定したくなければポートを明示的に除外すればよい。
さてRuleを作成したはいいが、そのRuleが期待通りに動いているかを検証する必要がある。これはどのように実行すればよいのであろうか。Ruleのテストはtest voice translation-ruleを利用する。
router#test voice translation-rule 1 "0312345678" Matched with rule 1 Original number: 0312345678 Translated number: 0312340000
0312345678を指定すると適用されたルール (rule 1)によりOriginal numberである0312345678がTranslated number 031234000に変換されていることがわかる。これは期待した結果に沿っているわけだからruleを利用できることがわかる。
このTranslation ruleは様々な場面で利用できる。たとえば会社から発信する番号をすべて一つに集約する、あるいは部署の番号を集約するといった場面ではcallingが効果を発揮する。また社内から禁止する番号があった場合にはcalledを利用してIVRに強制着信させることができる。
このようにtranslation ruleは簡単で高い効果を発揮するので覚えておいて損はない。