asterisk 通配符使用说明
时间: 2023-08-05 12:08:13 浏览: 183
在Asterisk中,通配符可以用于匹配多个扩展、通道、上下文等,以简化配置和管理。以下是一些通配符的使用说明:
1. `X`:匹配任意单个数字(0-9)。
- 例如:`_X.`匹配任意数字扩展。
2. `Z`:匹配任意单个数字或空格。
- 例如:`_Z.`匹配任意数字或空格扩展。
3. `N`:匹配任意单个数字(2-9)。
- 例如:`_NXXXXXX`匹配以2-9开头的7位数字。
4. `[abc]`:匹配括号内的任意一个字符。
- 例如:`_[123]XXX`匹配以1、2或3开头的3位数字。
5. `*`:匹配零个或多个字符。
- 例如:`_X*`匹配以数字开头的任意长度扩展。
6. `.`:匹配任意单个字符。
- 例如:`_1.`匹配以1开头的任意两位数字。
7. `!`:停止在当前上下文中查找更多的匹配项。
- 例如:`_XXXX!`将停止在找到4位数字扩展之后继续搜索。
8. `{}`:用于创建可选模式。
- 例如:`_1[23]XX`匹配以1开头,后跟23或33的4位数字。
这些通配符可以与Asterisk配置文件中的模式匹配规则一起使用,如`extensions.conf`和`sip.conf`等。通过合理使用通配符,您可以灵活地匹配和处理不同的情况和需求。
请注意,通配符的使用可能会带来性能开销,因此在使用时应注意避免过度使用或复杂的匹配模式。
希望这些说明对您有所帮助!如果还有其他问题,请随时提问。
相关问题
asterisk配置pjsip和extensions,要求实现所有以6开头的电话都能打进系统,所有6开头的电话只能拨打其他6开头的电话
在Asterisk中配置PJSIP(Phone Jacks for SIP)以及Extensions主要是为了设置SIP服务器和用户权限,以便按照指定规则处理电话呼叫。要实现所有以6开头的电话能打进系统,并限制它们只能拨打同样以6开头的电话,你可以参考以下步骤:
1. **安装和配置Asterisk**:
- 首先,确保已经安装了Asterisk及其相关的模块,如PJSIP模块。
2. **创建PJSIP账户**:
- 对于每个以6开头的电话号码,你需要创建一个对应的PJSIP用户,例如`6001@domain.com`, `6002@domain.com`等。在`etc/extensions.conf`文件中添加这些用户的配置,指定正确的SIP URI。
3. **全局路由**:
- 在`sip.conf`或`asterisk-extension.conf`中设置全局路由规则,将所有以6开头的来电分配到一个特定的扩展点(`exten`),比如`EXTENSION_6XXX`。
4. **Extension Configuration**:
- 创建一个扩展点,如`EXTENSION_6XXX`,其配置应该像这样(假设它是一个内部分机):
```
exten => _6XXX,1,Dial(SIP/6XXX)
```
这里使用通配符`_`表示匹配任何数字,`Dial()`函数用于拨打电话。
5. **限制出局通话**:
- 使用`samepeer`或`nochecklocal`选项限制6开头的电话仅能打给同样以6开头的电话。例如:
```
exten => _6XXX,1,Noop(Allow only 6-digit calls out to other 6-digit numbers)
exten => _6XXX,n,GotoIf($[${CALLERID(num)} =~ ^6.*$],SIP/6XXX,2,NoAnswer())
```
如果出叫号码不是以6开头,则跳转到NoAnswer状态阻止拨打。
6. **保存并重启**:
- 修改完配置后,记得保存并重启Asterisk服务。
阅读全文