Страница 1 из 2
Когда принято использовать Verbose и NoOp
Добавлено: 15 апр 2016, 09:59
Al8
Когда пишется диалплан, некоторые используют описанные команды для отладки работы Asterisk.
У нас в КЦ (Кол центер) например эти команды не используются.
Возник вопрос (не один): Когда принято использовать эти команды?
И что лучше Verbose или NoOp?
И вообще нужны ли эти команды бородатым дядям?
Re: Когда принято использовать Verbose и NoOp
Добавлено: 15 апр 2016, 10:13
ded
Книжку, книжку читать.
Verbose - многословность, подробный выхлоп исполнения диалплана и более.
NoOp - вывод состояния любых переменных в любой точке диалплана, и вообще всякого нужного и ненужного.
Код: Выделить всё
NoOp(____ ____ ___. )
NoOp(\ \ / /__________\_ |__ ____ ______ ____ ____ _____ ____ )
NoOp( \ Y // __ \_ __ \ __ \ / _ \/ ___// __ \ _/ ___\\__ \ / \ )
NoOp( \ /\ ___/| | \/ \_\ ( <_> )___ \\ ___/ \ \___ / __ \| | \)
NoOp( \___/ \___ >__| |___ /\____/____ >\___ > \___ >____ /___| /)
NoOp( \/ \/ \/ \/ \/ \/ \/ )
NoOp( __ __ .__ __ ._.)
NoOp( ____ _____/ |_ _/ |_| |__ _____ _/ |_| |)
NoOp( / \ / _ \ __\ \ __\ | \\__ \\ __\ |)
NoOp(| | ( <_> ) | | | | Y \/ __ \| | \|)
NoOp(|___| /\____/|__| |__| |___| (____ /__| __)
NoOp( \/ \/ \/ \/)
Re: Когда принято использовать Verbose и NoOp
Добавлено: 15 апр 2016, 10:41
virus_net
Al8 писал(а):Когда принято использовать эти команды?
Тогда когда необходимо что-то увидеть, например, как уже и сказал
ded состояния любых переменных или "озвучивание" словами на каком шаге мы находимся.
Al8 писал(а):И что лучше Verbose или NoOp?
Это неправильный вопрос. Они оба хороши. Verbose позволяет задавать уровень вербозности консоли, при которой он будет отображаться, а у NoOp такого нет.
Пожалуйста, научитесь выполнять команды:
Код: Выделить всё
*CLI> core show applications like APPNAME
*CLI> core show application APPNAME
*CLI> core show functions like FUNCNAME
*CLI> core show function FUNCNAME
где
APPNAME это имя интересующей application, а
FUNCNAME имя интересующей функции.
Код: Выделить всё
*CLI> core show function
AES_DECRYPT AES_ENCRYPT AGC AGENT ARRAY AST_CONFIG AUDIOHOOK_INHERIT BASE64_DECODE
BASE64_ENCODE CALLCOMPLETION CALLERID CALLERPRES CDR CHANNEL CHANNELS CHECKSIPDOMAIN
CONNECTEDLINE CSV_QUOTE CUT DB DB_DELETE DB_EXISTS DEC DENOISE
DEVICE_STATE DIALGROUP DIALPLAN_EXISTS DO_CDR ENUMLOOKUP ENUMQUERY ENUMRESULT ENV
EVAL EXCEPTION EXISTS EXTENSION_STATE FAXOPT FIELDNUM FIELDQTY FILE
FILE_COUNT_LINE FILE_FORMAT FILTER FRAME_TRACE GET_AUTOCONTACTS GLOBAL GROUP GROUP_COUNT
GROUP_LIST GROUP_MATCH_COUNT HASH HASHKEYS HINT ICONV IF IFMODULE
IFTIME IMPORT INC ISNULL KEYPADHASH LEN LISTFILTER LOCAL
LOCAL_PEEK LOCK MAILBOX_EXISTS MASTER_CHANNEL MATH MD5 MEETME_INFO MINIVMACCOUNT
MINIVMCOUNTER MUTEAUDIO ODBC ODBC_ANTIGF ODBC_FETCH ODBC_PRESENCE ODBC_SQL PASSTHRU
PITCH_SHIFT POP PP_EACH_EXTENSION PP_EACH_USER PUSH QUEUE_EXISTS QUEUE_MEMBER QUEUE_MEMBER_COUNT
QUEUE_MEMBER_LIST QUEUE_MEMBER_PENALTY QUEUE_VARIABLES QUEUE_WAITING_COUNT QUOTE RAND REALTIME REALTIME_DESTROY
REALTIME_FIELD REALTIME_HASH REALTIME_STORE REDIRECTING REGEX REPLACE SET SHA1
SHARED SHELL SHIFT SIP_HEADER SIPCHANINFO SIPPEER SORT SPEECH
SPEECH_ENGINE SPEECH_GRAMMAR SPEECH_RESULTS_TYPE SPEECH_SCORE SPEECH_TEXT SPRINTF SQL_ESC SRVQUERY
SRVRESULT STACK_PEEK STAT STRFTIME STRPTIME SYSINFO TESTTIME TIMEOUT
TOLOWER TOUPPER TRYLOCK TXTCIDNAME UNLOCK UNSHIFT URIDECODE URIENCODE
VALID_EXTEN VERSION VMCOUNT VOLUME
Код: Выделить всё
*CLI> core show application
AddQueueMember ADSIProg AgentLogin AgentMonitorOutgoing AGI AlarmReceiver AMD
Answer Authenticate BackGround BackgroundDetect Bridge Busy CallCompletionCancel
CallCompletionRequest CELGenUserEvent ChangeMonitor ChanIsAvail ChannelRedirect ChanSpy ClearHash
ConfBridge Congestion ContinueWhile ControlPlayback DAHDIScan DateTime DBdel
DBdeltree DeadAGI Dial Dictate Directory DISA DumpChan
EAGI Echo EndWhile Exec ExecIf ExecIfTime ExitWhile
ExtenSpy ExternalIVR Festival Flash FollowMe ForkCDR GetCPEID
Gosub GosubIf Goto GotoIf GotoIfTime Hangup ICES
ImportVar Incomplete Log Macro MacroExclusive MacroExit MacroIf
MailboxExists MeetMe MeetMeAdmin MeetMeChannelAdmin MeetMeCount Milliwatt MinivmAccMess
MinivmDelete MinivmGreet MinivmMWI MinivmNotify MinivmRecord MixMonitor Monitor
Morsecode MP3Player MSet MusicOnHold MYSQL NBScat NoCDR
NoOp ODBC_Commit ODBC_Rollback ODBCFinish Originate Page Park
ParkAndAnnounce ParkedCall PauseMonitor PauseQueueMember Pickup PickupChan Playback
PlayTones PrivacyManager Proceeding Progress Queue QueueLog RaiseException
Read ReadExten ReadFile ReceiveFAX Record RemoveQueueMember ResetCDR
RetryDial Return Ringing SayAlpha SayDigits SayNumber SayPhonetic
SayUnixTime SendDTMF SendFAX SendImage SendText SendURL Set
SetAMAFlags SetCallerPres SetMusicOnHold SIPAddHeader SIPDtmfMode SIPRemoveHeader SLAStation
SLATrunk SMS SoftHangup SpeechActivateGrammar SpeechBackground SpeechCreate SpeechDeactivateGrammar
SpeechDestroy SpeechLoadGrammar SpeechProcessingSound SpeechStart SpeechUnloadGrammar StackPop StartMusicOnHold
StopMixMonitor StopMonitor StopMusicOnHold StopPlayTones System TestClient TestServer
Transfer TryExec TrySystem UnpauseMonitor UnpauseQueueMember UserEvent Verbose
VMAuthenticate VMSayName VoiceMail VoiceMailMain Wait WaitExten WaitForNoise
WaitForRing WaitForSilence WaitMusicOnHold WaitUntil While Zapateller
а затем читать выхлоп, прежде чем писать на форум.
Al8 писал(а):нужны ли эти команды бородатым дядям?
Бородатым дядям они просто must have, т.к. они позволяют отлаживать dialplan и выполнять траблшут. Детям они не нужны, т.к. они и консоль то никогда не видели.
Re: Когда принято использовать Verbose и NoOp
Добавлено: 30 июн 2016, 13:56
svd
а можно поподробнее о том как варить verbose
запускаю консоль asterisk -rvvv
(я так понимаю выставляю verbose level=3 по количеству букавок v)
пытаюсь отлаживать AGI-скрипт
там создана функция
Код: Выделить всё
function debug($string, $level=3)
{
global $AGI;
$AGI->verbose($string, $level);
}
сразу когда начал отлаживать меседжы выводились, а сейчас куда то пропали...
не могу понять...
функцию вызываю в скрипте эту так (так было в примере)
Код: Выделить всё
debug("Caller ID name is '$cidname' number is '$cidnum'", 1);
как диагностировать что с ней стало и как правильно это готовить?
Re: Когда принято использовать Verbose и NoOp
Добавлено: 30 июн 2016, 14:21
ded
ded писал(а):Книжку, книжку читать.
консоль
asterisk -rvvvvvvvvv - с большой вербозностью
asterisk -rvv - с малой
повысить вербозности в текущей сессии
CLI> core set verbose 10
Дебажить же AGI командой
CLI> agi set debug on
Не стоит задавать вопросы, ответы на которые есть в учебниках.
Re: Когда принято использовать Verbose и NoOp
Добавлено: 20 июл 2016, 15:58
svd
вопрос снят, проблема была с опечаткой в php файле. из-за неё всё рушилось и ничего не выводилось.
Re: Когда принято использовать Verbose и NoOp
Добавлено: 20 июл 2016, 19:50
gland
svd писал(а):30 июн 2016, 14:56 пытаюсь отлаживать AGI-скрипт
svd писал(а): 20 июл 2016, 16:58 опрос снят, проблема была с опечаткой в php файле
Неужели 30-го июня нельзя было закомментировать ... = new(Agi);
и запустить php файл из командной строки???
Хотя, можно и не комментировать, синтаксис проверяется до исполнения
Re: Когда принято использовать Verbose и NoOp
Добавлено: 20 июл 2016, 22:36
svd
а я не умел тогда на пхп писать и отлаживать ЭТО.
заодно и потренировался
я как бы больше на C#
хотя, как говориться, на чём надо на том и пишем, помню давненько даже на mapbaseic что-то ваял.
заплюют меня пхп-писты, но не понравился он мне, интерпретируемый язык, переменные не типизированные, не компилируется.
никакого контроля откуда и к чему обращаюсь.
фатальным крушением оказалось объявление переменной как в t-sql @val_res
мой глаз за ЭТО не цепляется, интерпретатор тупо тихо валится. А мой ненатасканый взор упорно этого не видит.
отладки путёвой нет, ну если из кучи бубнов не собрать пхп-тотем.
с ВЕРБОЗОМ и НООП всё было в порядке
просто после перехода в AGI аги возвращался с кодом завершения О, а все отладочные "месседжи" (как сказали бы буржую, а мы православные скажем "сообщения")не выплёвывались.
следующий раз наверное буду ваять на перле, по описанию он объекто-ориентированный язык ди и более высокоуровневый.
Re: Когда принято использовать Verbose и NoOp
Добавлено: 20 июл 2016, 23:30
gland
svd писал(а):а я не умел тогда на пхп писать
Скрипт был создан копипастой? Можно не отвечать. И получается, за 20 дней стали уметь писать на php? ловко, но можно тоже не отвечать
svd писал(а):
никакого контроля откуда и к чему обращаюсь.
Это от поверхностных знаний
svd писал(а):следующий раз наверное буду ваять на перле, по описанию он объекто-ориентированный язык ди и более высокоуровневый.
А php не объектно-ориентированный? Насчёт "более высокоуровневый" - как сравнивать жопу с пальцем. Одно - изначально для одного, второе - для другого. Но это холивар
Re: Когда принято использовать Verbose и NoOp
Добавлено: 20 июл 2016, 23:51
svd
а я пожалуй отвечу:
gland писал(а):svd писал(а):а я не умел тогда на пхп писать
Скрипт был создан копипастой? Можно не отвечать. И получается, за 20 дней стали уметь писать на php? ловко, но можно тоже не отвечать
svd писал(а):следующий раз наверное буду ваять на перле, по описанию он объекто-ориентированный язык ди и более высокоуровневый.
А php не объектно-ориентированный? Насчёт "более высокоуровневый" - как сравнивать жопу с пальцем. Одно - изначально для одного, второе - для другого. Но это холивар
скрипт не был создан копипастой, ваще не увлекаюсь попытками получить результат от скопированного куска букв... мне за это отвечать, а не бравому "швейку" ...........
svd, первое и последнее. Надеюсь понятно, тут не помойка и не шпана за гаражами.
gland, постарайтесь подбирать другие сравнения и метафоры, ОК? Русский язык богаче, чем мы его используем.