Сообщения о недоступности абонента
Сообщений: 866
|
Re: Сообщения о недоступности абонента
cron, оставьте пожалуйста свой менторский тон и хамский стиль разговора для своих друзей. Меня совершенно не интересует ваше мнение о моих способностях, умении или неумении правильно писать диалпланы астериска и что угодно еще. Если предметно говорить не о чем - то "иногда лучше жевать чем говорить".
причем здесь ваш сервер (похоже единственный) с вашим конфигом. Я предложил вам изобразить то, что вы назвали правильным вариантом ... Похоже - тупик ...
Вот не удержаться чтобы не куснуть? "похоже единственный" ? Это попытки самоутвердится на фоне окружающих? Ну что ж, флаг в руки. Серверов у меня четыре. Не промышленные количества, конечно, но количество серверов вообще к топику отношения не имеет. Более того, не у всех количество переходит в качество.
По вопросу: я вам изобразил то что считаю правильным. Не единственно возможной истиной, а просто одним из путей который я считаю правильным. И который я сам бы использовал. Использовал бы потому что он обладает с моей точки зрения преимуществами. Вам не нравится - воля ваша. Разве вас кто-то использовать заставляет?
Если вы в простом случае идете трущобами, могу представить, что у вас в сложной конфигурации будет.
1. Задававший вопрос не спрашивал о простейшем способе. Он просто спросил "как". То как делаю я - это один из вариантов.
2. делая даже простой случай я думаю о том как я его буду раширять дальше.
По какому из этих двух параметров (длина, простота) ваш вариант лучше?
опять молчок ... Или вас вопрос ставит в тупик?
Нет, просто мой вариант лучше по другим причинам. По тем критериям которые пытаетесь навязать вы он может и хуже. Но повторюсь, у каждого свои приоритеты. Пишите короче, пишите проще, кто против? На мой код пока тоже никто не жаловался.
вы случаем в него чего нибудь от себя не добавили ... :)))
...
последний раз выложил логи ... Но это для того, что бы у вас появился стимул вылечить руки ...
Вы точно осознаете разницу между _несуществующим_ экстеншеном - то есть таким которого вообще нет в users.conf/sip.conf/iax.conf/realtime и существующим но не зарегистрированным?
За базар готовы ответить? Я сконфигурю станцию с вашим диалпланом (пост от 2009-02-18 17:21) и позвоню на _несуществующий_ ext. Если если на консоль вывалится WARNING от ChanIsAvail - вы мне должны 100 баксов. Если нет - я вам. Хотите?
Ну так от вас ожидать ваш финальный вариант. Или - все ступор?
А чем мой последний не устраивает? Хотите чтобы я размер уменьшил удалив комменты и Noop'ы или что?
|
Сообщений: 1573
|
Re: Сообщения о недоступности абонента
dimas: cron, оставьте пожалуйста свой менторский тон и хамский стиль разговора для своих друзей.
Если считаете, что я вам нахамил - приношу извинения ...
dimas:
Это попытки самоутвердится на фоне окружающих? Ну что ж, флаг в руки. Серверов у меня четыре. Не промышленные количества, конечно, но количество серверов вообще к топику отношения не имеет.
dimas, вы правда считаете, что это я начал рассказ о своем опыте и т.д. ... Или как это уже можно понять. Поднимите плз. свой взгляд на свой предыдущий пост и посмотрите. Я просто вынужден был вам ответить, что тоже кое что проходил ... Я не люблю меряться пиписьками ... (не сочтите за хамство)
А по поводу конфига с сервера, так я сделал вывод с ваших же слов. Вы все время киваете на какой то конфиг какого то сервера ...
Хотя я вас прошу написать свой вариант, которым вы меня поправили (если вспомните с чего начался спор), применительно к данной ситуации что бы наглядно сравнить оба варианта ... Ну и сообщество могло бы высказаться по этому поводу. Если конечно это никому не надоело ... :)
dimas:
Вы точно осознаете разницу между _несуществующим_ экстеншеном - то есть таким которого вообще нет в users.conf/sip.conf/iax.conf/realtime и существующим но не зарегистрированным?
:)) я очень четко себе это представляю. Чем дальше в лес, как говорится ... Условия меняются находу. Отвечу на это так - а зачем звонить на такой номер? Об этом разве был разговор? Или это - хватание за соломину?
Я говорю, это уже переходит вообще в другую плоскость ...
dimas:
За базар готовы ответить?
Ну вот с этим точно - дуйте к своим "кентам" ..., там и "базарьте";)
dimas:
А чем мой последний не устраивает? Хотите чтобы я размер уменьшил удалив комменты и Noop'ы или что?
Я вас попросил перевести это на язык extensions.conf, так, как вы это раньше писали. Выше объяснил почему ...
Так вы напишите?
Мой - вот:
[context]
exten => _X.,1,ChanIsAvail(SIP/${EXTEN}&IAX2/${EXTEN},j)
exten => _X.,n,Dial(${AVAILORIGCHAN})
exten => _X.,102,Hangup
|
Сообщений: 866
|
Re: Сообщения о недоступности абонента
:)) я очень четко себе это представляю. Чем дальше в лес, как говорится ... Условия меняются находу. Отвечу на это так - а зачем звонить на такой номер? Об этом разве был разговор? Или это - хватание за соломину?
Условия меняются? Отнюдь.
Страница 2, 2009-02-18 09:48:
ChanIsAvail можно выполнить и без regcontext - но это опять же варнинги в консоль. Для ***несуществующих*** номеров.
Страница 3, 2009-02-18 18:34:
PS: кстати, ваш "финальный" вариант по прежнему не финальный потому как без regcontext и ChanIsAvail БУДЕТ ругаться в консоль при попытке обратится к ***енсуществующим*** экстеншенам. Вернулись к тому с чего начали.
Ну и с чего весь сыр-бор начался, текст топикстартера (!!!), страница 1, 2009-02-17 12:37:
P.P.S. Заметил, что Астериск не различает статусов: "абонент не существует" и "абонент в данный момент не подключен".
И позвольте вам напомнить - несмотря на то что я вам написал что у меня нет ни одной строчке в "обычном" диалплане вы следующим же постом упрекнули меня в том что я этот диалплан вам не скопипастил. Мне кажется что вы просто не очень внимательно читаете посты. Мне не жалко конечно, но не надо меня тогда упрекать что я мухлюю.
Я вас попросил перевести это на язык extensions.conf, так, как вы это раньше писали. Выше объяснил почему ...
Окей, подход a la dimas на обычном диалплане:
sip.conf:
regxontext = registrations
iax.conf:
regxontext = registrations
dialplan:
[macro-dial-user]
exten => s,1,ChanIsAvail(SIP/${ARG1}&IAX2/${ARG1})
exten => s,n,GotoIf($["${AVAILORIGCHAN}" = ""]?:dial)
exten => s,n,Congestion()
exten => s,n,Set(DIALSTATUS=CHANUNAVAIL)
exten => s,n,GoTo(exit)
exten => s,n(dial),Dial(${AVAILORIGCHAN})
exten => s,n(exit),Noop
[users]
include => registrations
exten => _X.,2,Macro(dial-user,${EXTEN})
exten => _X.,n,Hangup
это перевод "в лоб" того что я писал выше из AEL в dialplan.
Если гнаться за краткостью, вашей сестрой, то из macro-dial-user можно выкинуть Congestion - он нужен мне в моей конфигурации но не нужен остальным.
|
Сообщений: 1573
|
Re: Сообщения о недоступности абонента
Наш спор начался не с того, как определить статус. Топики, как известно отклоняются от темы, как сейчас например, мы боремся с варнингами ... В тот момент в топике я показал, как можно сократить план набора. Но вы заявили это:
dimas: exten => _XXX,1,Macro(stdexten,,SIP/${EXTEN}&IAX2/${EXTEN})
срать на консоль будет про то что IAX2/999 недоступен или SIP/999 недоступен - в зависимости от того как он реально подключен. Не смертельно, но анноит.
По хорошему нужно прописывать в sip.conf
regxontext = sipregs
в iax.conf:
regxontext = iaxregs
и делать что-то вроде
[sipusers]
includes => sipregs
exten => _XXX,2,Dial(SIP/${EXTEN})
exten => _XXX,n,Hangup
[iaxusers]
includes => iaxregs
exten => _XXX,2,Dial(IAX2/${EXTEN})
exten => _XXX,n,Hangup
[users]
includes => sipusers
includes => iaxusers
и кидать звонки уже в users
вот о чем начался наш спор ...
Насчет того, что вы пытались, мягко говоря, ввести в заблуждение:
dimas:
Но в отличие от dial-user который копипаст с реального сервера, части с regcontext писал ручками а не копипастил и по дороге перемудрил с тем что разделил SIP и IAX2 регистрироваться в разные контексты. Чего делать нельзя. (На реальных серверах они у меня в один контекст регистрируются)
мнение даже не изменил, а укрепил. Видно невооруженным глазом, что рабочий вариант вы создали во время спора (и благодаря ему) Но повторюсь, для меня не важно откуда вы берете конфиги, находу из головы, или копипаст ...
Мне это просто было непонятно, для чего это нужно было. Хотя причина была возможно в том, что это было аргументом - ведь это с реальных серверов.
Как подтверждение, того, что на сервере этого не было:
dimas:
Единственно где перемудрил - нельзя делать разделение на sip/iax - надо и регистрировать в один контекст и инклюдить в один в котором Dial сразу и SIP и IAX делает. Ибо отдельными контекстами работать не будет.
уверен, если бы это было на сервере (серверах), вы бы это увидели, даже если вы не копипастили ... Как минимум два контекста от одного бы отделили ... ;)
Ну и сравните свой первый пост, где вы показали план на AEL со вторым AEL`лом. Сразу почему то не скопировалось, похоже, что в первый раз у вас "буфер обмена" не уместил все ... )
Ладно, это мелочи жизни ... Дальше:
dimas: Мне нужно отличать ситуацию "экстеншен не зарегистрирован на сервере" от иных причин его недоступности. Моя схема мне это позволяет.
скажите, как ваша схема определит, существует ли пользователь в системе или просто не зарегистрирован?
Кстати, если мой вариант выкидывает WARNING при несуществующем юзере, то ваша - NOTICE, с чем вы, как извстно, боретесь ... (или с этим уже не боретесь)
Ну и наконец то появился конструктив! (с первым вариантом, который не скопипастенный, ни в какое сравнение ...) )
|
Сообщений: 1573
|
Re: Сообщения о недоступности абонента
Уважаемые ALL!
Прошу разрешить наш спор. Вопрос в следующем, какой вариант вы считаете более подходящим для своего использования (или уже используете), считаете его более грамотным и/или простым:
Вариант 1:
sip.conf:
regxontext = registrations
iax.conf:
regxontext = registrations
dialplan:
[macro-dial-user]
exten => s,1,ChanIsAvail(SIP/${ARG1}&IAX2/${ARG1})
exten => s,n,GotoIf($["${AVAILORIGCHAN}" = ""]?:dial)
exten => s,n,Congestion()
exten => s,n,Set(DIALSTATUS=CHANUNAVAIL)
exten => s,n,GoTo(exit)
exten => s,n(dial),Dial(${AVAILORIGCHAN})
exten => s,n(exit),Noop
[users]
include => registrations
exten => _X.,2,Macro(dial-user,${EXTEN})
exten => _X.,n,Hangup
дополнительно к базовой, требует настройки параметра в sip.conf, iax.conf и понимание работы механизма - regcontext.
Вариант 2:
[context]
exten => _X.,1,ChanIsAvail(SIP/${EXTEN}&IAX2/${EXTEN},j)
exten => _X.,n,Dial(${AVAILORIGCHAN})
exten => _X.,102,Hangup
дополнительных настроек не требуется ...
Под базовой настройкой подразумевается создание юзеров.
Интересует мнение, как опытных пользователей, так и начинающих. Начинающих даже в большей степени ... )
|
Сообщений: 866
|
Re: Сообщения о недоступности абонента
офигеть. Вы наверно сторонник теории заговора. Или большой любитель доктора Хауса ("все врут"), иначе не объяснить. Давайте я вам без примеров кода объясню как все получилось. Хронология такая:
1. masters сказал что Dial не отличает разных ситуаций, я подтвердил что да, именно так. (проблема номер 1)
2. masters написал кучу паттернов - часть делающих Dial SIP, часть - Dial IAX и пожаловался что это как-то не красиво.
3. Я ему ответил что можно звонить сразу на оба - и SIP и IAX одновременно и привел свой макрос dial-user (делающий ChanIsAvail и Dial) копипастом с сервера. И тут же предупредил что оно будет в консоль ругаться (варнинги писать).
4. Дальше вы оптимизировали его паттерны и предложили звать stdexten который также делает Dial сразу по двум протоколам. Принципиально никакого отличия stdexten от dial-user нет кроме того что первый - стандартный.
5. Я повторил свой мессадж что вызов подобного (не важно - stdexten или dial-user) макроса будет ругаться в консоль. И хотел показать как этого избежать с помощью regcontext. И вот тут случилось то о чем я ну очень жалею - так как я хотел показать лишь принцип не более, я не стал копировать рабочий AEL с сервера (где у меня ОДИН regxontext для обоих типов). Вместо этого я попытался написать все это "с нуля" простым диалпланом.
И для наглядности же разделил один контекст на два. Да, этого делать было нельзя, да, это была ошибка. Ну так я же следующим постом поправился, чего вы хотите?
Все что было дальше это чистой воды мозго$#ство с вашей стороны. Конструктива - ноль. Только попытки придраться к каждому слову, попытки обвинить в каких-то подлогах и обманах, усомниться в компетентноси и заодно общей адекватности.
Мне это просто было непонятно, для чего это нужно было. Хотя причина была возможно в том, что это было аргументом - ведь это с реальных серверов.
Как подтверждение, того, что на сервере этого не было:
...
уверен, если бы это было на сервере (серверах), вы бы это увидели, даже если вы не копипастили ... Как минимум два контекста от одного бы отделили ... ;)
Вы мне пытаетесь доказать что у меня на сервере "не так как я написал вначале"? Я уже тридцать раз объяснил что с сервера был взят только макрос dial-user, остальное было написано прямо в окне ответа. Я хотел просто продемонстрировать сам принцип использования regcontext. Сто раз говорил - у меня НЕТ обычного диалплана (только AEL) поэтому скопировать его мне было неоткуда. Но так ведь я нигде не утверждаю что "вот вам копипаст с живой машины" кроме как для dial-user.
Почитайте внимательно текст с моим первым постом "По хорошему нужно .... ***и делать что-то вроде*** ...". Понимаете? "что-то вроде"! Это идея, пример, иллюстрация, это НЕ живой готовый код ...
Все, извините, я от этой темы устал и считаю спор с вами бесполезной тратой моего времени. За сим позвольте откланятся.
|
Сообщений: 866
|
Re: Сообщения о недоступности абонента
а кому хочется нереальной простоты - прописывает юзеров в users.conf (вместо sip.conf/iax.conf) ставя им hassip=yes hasiax=yes и им вместо Noop'ов для каждого юзера в regcontext cоздаются сразу Macro(sdexten). Все, телемаркет. Вообще ни строчки в диалплане писать не надо.
Да, есть ограничения. Но кого это волнует? главное чтобы просто было...
|
Сообщений: 1573
|
Re: Сообщения о недоступности абонента
Мне надоело уже, если честно. Я высказался в общем ...
dimas: Все что было дальше это чистой воды мозго$#ство с вашей стороны. Конструктива - ноль.
Мой конструктив был в этом:
exten => _XXX,1,Macro(stdexten,,SIP/${EXTEN}&IAX2/${EXTEN})
потом принял ваши условия по борьбе с варнингами, стало так:
[context]
exten => _X.,1,ChanIsAvail(SIP/${EXTEN}&IAX2/${EXTEN},j)
exten => _X.,n,Dial(${AVAILORIGCHAN})
exten => _X.,102,Hangup
от вас конструктив появился в предыдущем посте ... Просил вас написать это все последние сутки! ...)
Так у кого не было конструктива?
P.S. Боритесь лучше с варнингами на своих четырех серверах. Удачи вам в нелегкой борьбе!
Мне честно, уже надоело ...
|
Откуда: Уфа
Сообщений: 5856
|
Re: Сообщения о недоступности абонента
я буду, типа, ALL
оба участника спора хорошо порезвились и развлекли остальных. Остальные узнали много нового.
а если по сути:
спорили, убеждая друг друга в одном и том же. только у каждого ситуация своя.
|
Сообщений: 1573
|
Re: Сообщения о недоступности абонента
не switch, ес-но будет работать и то и то. Но что, допустим ты используешь или стал бы использовать? Только без теории. Просто реально, на практике ...
Пока что твой ответ не считается ... ;)
|
|