Brekeke SIP Server Wiki

特定のルートを通るセッション数を制限する

 

Brekeke SIP Server v3.1 以降で、下記のダイヤルプランメソッドにより、同じルートを通るセッション数のカウントを行い、セッション数による制限を行う事ができます。

セッションごとにルート名を、$routename 変数に設定します。すると、ルート名ごとに現在のセッション数がカウントされます。

 

マッチングパターンでルートのカウント、制限を行うためのメソッド

$route.concurrent – 引数で渡されるルート名がつけられている現在のセッション数を返します。

Syntax: $route.concurrent( <ルート名> )
Returns: 指定されたルートのセッション数

$route.underlimit – 引数で渡されるルート名が、一定数未満であるかどうかを返します。

Syntax: $route.underlimit( <ルート名>, <最大数> )
Returns: true | false

 

デプロイパターンで使用するメソッド

$routename – セッションにルート名を割り当てます。

Syntax: $routename = <ルート名>

 

例1: 特定の IPアドレスからの発信者に対して、最大5セッションに制限する
--------------------------------------------
[Matching Patterns]
$request = ^INVITE
$addr = (.+)
$route.underlimit( "%1", "5" ) = true

[Deploy Patterns]
$routename = %1
$continue = true
--------------------------------------------
例2: 特定のルーティング先に対して、最大5セッションに制限する
--------------------------------------------
[Matching Patterns]
$request = ^INVITE
To = sip:(.+)@
$route.underlimit( "gateway1", "5" ) = true

[Deploy Patterns]
To = sip:%1@172.16.1.101
$routename = gateway1
$continue = true
--------------------------------------------
例3: レジスタされているアドレスごとに、最大10セッションずつに制限する
--------------------------------------------
[Matching Patterns]
$request = ^INVITE
$regaddr = (.+)
$route.underlimit( "%1", "10" ) = true

[Deploy Patterns]
$routename = %1
$continue = true
--------------------------------------------
例4: 発信者の SIP user IDごとに、最大5セッションに制限する
--------------------------------------------
[Matching Patterns]
$request = ^INVITE
From = sip:(.+)@
$route.underlimit( "%1", "5" ) = true

[Deploy Patterns]
$routename = %1
$continue = true
--------------------------------------------
例5: 発信先 SIP user ID ごとに、最大5セッションに制限する
--------------------------------------------
[Matching Patterns]
$request = ^INVITE
To = sip:(.+)@
$route.underlimit( "%1", "5" ) = true

[Deploy Patterns]
$routename = %1
$continue = true
--------------------------------------------
例6: 発信元、発信先、両方の SIP user IDに対して、5セッションに制限する
--------------------------------------------
[Matching Patterns]
$request = ^INVITE
From = sip:(.+)@
To = sip:(.+)@
$route.underlimit( "%1", "5" ) = true
$route.underlimit( "%2", "5" ) = true

[Deploy Patterns]
$routename = %1
$routename = %2
$continue = true
--------------------------------------------
例7: ITSP (Vonage) への発着信セッションを最大5セッションに制限する
--------------------------------------------
[Matching Patterns]
$request = ^INVITE
From = vonage.net
$route.underlimit( "Vonage", "5" ) = true

[Deploy Patterns]
$routename = Vonage
$continue = true
--------------------------------------------
例8: ビデオセッションを最大5セッションに制限する
--------------------------------------------
[Matching Patterns]
$request = ^INVITE
$body( "(m=video)" ) = .+
$route.underlimit( "video", "5" ) = true

[Deploy Patterns]
$routename = video
$continue = true
--------------------------------------------
Yes No
Suggest Edit