Quantcast
Channel: IP АТС Asterisk
Viewing all articles
Browse latest Browse all 1041

function 'CUT'

$
0
0

function 'CUT'

Функция Asterisk: разрезать строку по заданными разделителям.

Описание

Вырезать информацию из строки (переменной), ориентируясь на разделители.

Синтаксис

 CUT(varname,char-delim,range-spec)

Аргументы

  • varname - переменная для операции.
  • char-delim - Разделитель, по умолчанию '-'.
  • range-spec - Номер поля, который вам нужен со смещением начиная с 1-го, также возможно задавать диапазон полей через '-' и группировать при помощи амперса́нда - '&'.

Пример

Предположим, имеется таблица БД - devices, с данными SIPустройств.

+------+-------+------------+------------+------+-------------+---------------+
| id   | tech  | dial       | devicetype | user | description | emergency_cid |
+------+-------+------------+------------+------+-------------+---------------+
| 4889 | pjsip | PJSIP/4889 | fixed      | 4889 | sip 4889    |               |
| 4887 | sip   | SIP/4887   | fixed      | 4887 | sip 4887    |               |
| 4886 | sip   | SIP/4886   | fixed      | 4886 | sip 4886    |               |
+------+-------+------------+------------+------+-------------+---------------+
 exten => _4XXX,1,verbose(${REALTIME(devices,user,${EXTEN},:,:)})

Функция REALTIME()возвращает на строку содержащую user:4889 c двоеточием в качестве разделителя:

 Verbose("id:4889:tech:pjsip:dial:PJSIP/4889:devicetype:fixed:user:4889:description:sip 4889:")
Требуется получить технологию из поля под порядковым номером 6, в данном случае PJSIP/4889.
используем для этого функцию CUT():
 exten => _4XXX,1,verbose(${CUT(REALTIME(devices,user,${EXTEN},:,:),:,6)})

и получим требуемое значение:

 Verbose("PJSIP/4889") 

Поля 4,5 и 6:

 exten => _4XXX,1,verbose(${CUT(REALTIME(devices,user,${EXTEN},:,:),:,4-6)}) 
 Verbose("pjsip:dial:PJSIP/4889")

Поля 6 и 8:

 exten => _4XXX,1,verbose(${CUT(REALTIME(devices,user,${EXTEN},:,:),:,6&8)}) 
 Verbose("PJSIP/4889:fixed")

Функции Asterisk


Viewing all articles
Browse latest Browse all 1041

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>