IRC log for #asterisk on 20201006

01:37.25*** join/#asterisk yoink (~yoink@unaffiliated/yoink)
02:01.07*** join/#asterisk tsal (~tsal@i59F5F4B5.versanet.de)
02:41.05*** join/#asterisk hfb (~hfb@cpe-75-82-92-216.socal.res.rr.com)
03:15.37*** join/#asterisk nix8n82 (~AndChat58@67-130-74-235.dia.static.qwest.net)
03:39.47*** join/#asterisk sh_smith (~sh_smith@cpe-172-88-21-24.socal.res.rr.com)
05:10.07*** join/#asterisk ghoti (~paul@bras-base-ptldon0102w-grc-04-76-66-167-162.dsl.bell.ca)
05:38.07*** join/#asterisk tomaluca95 (~quassel@kde/developer/tomaluca)
06:04.07*** join/#asterisk Iamnach0 (~Iamnacho@ip68-102-131-177.ks.ok.cox.net)
06:05.13*** join/#asterisk Samot (sid133316@gateway/web/irccloud.com/x-hbsqfnvfiirnybct)
06:05.20*** join/#asterisk idtentee (sid101023@gateway/web/irccloud.com/x-udibabwcehupdkgs)
06:05.28*** join/#asterisk jkroon (~jkroon@165.16.204.98)
06:05.34*** join/#asterisk john2gb (~john2gb@94-225-47-8.access.telenet.be)
06:05.35*** join/#asterisk tuxd00d (sid401305@gateway/web/irccloud.com/x-xdujwbjvranrqefx)
06:05.37*** join/#asterisk drmessano (drmessano@pdpc/supporter/active/drmessano)
06:06.25*** join/#asterisk stux|work (stux@endurance.xzibition.com)
06:52.16*** join/#asterisk MarcinWieczorek (~marcin@212.182.24.66)
07:02.50*** join/#asterisk AsteriskRoss (~AsteriskR@37.157.48.2)
07:15.33*** join/#asterisk spatel (~spatel@pool-96-237-230-175.bstnma.fios.verizon.net)
07:15.58*** join/#asterisk MarcinWieczorek_ (~marcin@212.182.24.81)
07:41.42*** join/#asterisk Barbosa (~barbosa@177.148.189.176)
07:50.43*** join/#asterisk rjt (~anon@wsip-70-184-216-165.om.om.cox.net)
08:17.34*** join/#asterisk fstd_ (~fstd@unaffiliated/fisted)
08:52.17*** join/#asterisk drathir_tor (~drathir@gateway/tor-sasl/drathir)
09:36.51*** join/#asterisk Jesterboxboy (~Thunderbi@84-115-150-8.cable.dynamic.surfer.at)
09:40.12*** join/#asterisk dym (~patrick@unaffiliated/dym)
09:41.23dymHi guys! I'd like to throw out an idea for feedback. I'm trying to find a way to provide a call queue for another business. So basically instead of the user ringing into the business itself, the user rings one of my extensions and is then put on hold while the businesses extension is called.
09:41.59dymIm wondering if there is any other clever method to this. I would need a dedicated number at the business, so no external caller can interfere with the queue and the mode of the queue contacting the business needs to be set.
09:42.10dymbasically the business could be an agent extension in the queue, right?
09:43.53dymI would like to keep it as seperated as possible, so i dont have to put up a phone or anything at the business, but as i understand it an agent that is set in a queue is tried when a caller is on the queue. Could this be an external number too?
09:48.50sibiriait's just a matter of Dial() inside a flow
09:48.53sibiriabasic attended transfer
09:49.06sibiriakeep in mind you will be the one doing the transfer, i.e. it's on your bill
09:50.17dymsibiria: yeah, i get that
09:50.29dymsibiria: we mostly have flatrates here.
09:51.16dymsibiria: What would it be like on the businesses side, if a call is initiated? Would the "agent" hear an announcement first?
09:51.27dymOr would the call be connected directly?
09:51.39dym(havent worked extensively with queues before, so excuse my questions)
09:52.25sibiriathat depends on how you want to manage the call
09:52.38sibiriaif you do a straight-up dial() without any specifics, it will be just a normal call
09:52.48sibiriawhen called party answer the two lines are bridged at once
09:53.40dymWell, i do want to use the queue system of asterisk. doesnt this have some pre-made functions?
09:53.46sibiriadial() can also do stuff like send DTMF before bridging the call, and play a sound file first etc.
09:54.04dymsibiria: but isnt this already built into the queue functions?
09:54.11dymdo i have to initiate a specific dial myself
09:54.12dym?
09:54.20dymi dont want to simply forward the calls
09:54.24dymi want to use the queue
09:54.59sibiriayou said you want to provide the queue for another business. i interpret it as you wanting to sit in the middle of it, and call the actual business to forward what comes in on your end
09:55.11dymsibiria: exactly, but queued
09:55.28dymas in caller 1 calls, business is contacted, while caller 2 sits in the queue until business is free again
09:55.40dymsame for caller 3,4,5,6
09:55.40sibiriaqueues then
09:55.50dymwell, yeah :D as mentioned
09:56.08dymmaybe i just need to do some reading and testing :)
09:56.11dymthanks buddy!
09:57.19sibiriathe asterisk wiki has a lot on the topic already
09:57.40sibirianormal answer/dispatch type thing
09:57.51dymAlso with external Queue Members? :)
09:58.31sibirianot sure, i've never dug into the details of those tutorials
10:34.45*** join/#asterisk Samot (sid133316@gateway/web/irccloud.com/x-hbsqfnvfiirnybct)
10:34.45*** join/#asterisk pchero (~pchero@211.178.226.108)
10:34.45*** join/#asterisk smkelly (~smkelly@mykonos.smkelly.org)
10:34.54*** join/#asterisk nix8n82 (~AndChat58@67-130-74-235.dia.static.qwest.net)
10:54.51*** join/#asterisk drathir_tor (~drathir@gateway/tor-sasl/drathir)
11:12.29*** join/#asterisk john2gb (~john2gb@94-225-47-8.access.telenet.be)
11:25.46*** join/#asterisk tomaluca95 (~quassel@kde/developer/tomaluca)
11:30.09*** join/#asterisk paulgrmn (~paulgrmn@c-98-250-183-21.hsd1.mi.comcast.net)
12:04.29*** join/#asterisk MarcinWieczorek (~marcin@212.182.24.66)
12:40.53*** join/#asterisk drathir_tor (~drathir@gateway/tor-sasl/drathir)
13:00.32*** join/#asterisk khobo (~khobo@cpe-72-225-199-101.nyc.res.rr.com)
13:23.43*** join/#asterisk rpifan (~rpifan@p200300d267177e43aa4a14ffe3cee5c2.dip0.t-ipconnect.de)
13:33.32*** join/#asterisk bford (uid283514@gateway/web/irccloud.com/x-clxsoqmcjpxhsmok)
13:33.33*** mode/#asterisk [+o bford] by ChanServ
13:43.35*** join/#asterisk kharwell (uid358942@gateway/web/irccloud.com/x-koqffqxqgzhgrhum)
13:43.36*** mode/#asterisk [+o kharwell] by ChanServ
13:47.37*** join/#asterisk drathir_tor (~drathir@gateway/tor-sasl/drathir)
14:44.57*** join/#asterisk themayor (~themayor@unaffiliated/themayor)
14:59.08*** join/#asterisk Barbosa_ (~barbosa@177.148.189.176)
15:05.00*** join/#asterisk drathir_tor (~drathir@gateway/tor-sasl/drathir)
15:25.58*** join/#asterisk drathir_tor (~drathir@gateway/tor-sasl/drathir)
16:06.44*** join/#asterisk tripleslash (~triplesla@unaffiliated/imsaguy)
16:12.23*** join/#asterisk rpifan_ (~rpifan@p200300d267177e30df1a8dbb7c190d68.dip0.t-ipconnect.de)
16:15.30*** join/#asterisk electronic_eel (~quassel@213.240.182.42)
16:17.19electronic_eelwhat is the proper way to match really all extensions in a dialplan context?
16:18.16electronic_eelfor example I want to catch all calls from internal handsets and want to always set some variables on them, before the actual extension specific handling begins
16:19.04electronic_eelso i have a context "from-internal-start" and I'm currently using "exten => _." there
16:19.25electronic_eelbut asterisk warns me "The use of '_.' for an extension is strongly discouraged and can have unexpected behavior."
16:21.30electronic_eelusing something like "exten => _X.", as suggested in the warning, doesn't get me what I want, because the user could for example dial international with a +, like +41123456
16:23.10SamotNope.
16:23.18Samot+ is a character that has to be match
16:23.26SamotX is 0-9
16:24.00Samot_X. is match any length that starts with 0-9
16:24.04electronic_eelexactly. but how can I match everything, including +
16:24.10SamotYou add the +
16:24.15Samot_+X.
16:24.43electronic_eelbut then it does not match extensions that do not have a + in it
16:24.49SamotOK
16:24.54SamotSo you need two matches
16:25.09electronic_eelI want to avoid that, because then I have to duplicate the code
16:25.17SamotReally?
16:25.40SamotAre your extensions the same length as PSTN destinations?
16:26.01electronic_eelthe extensions can be any length I do not know
16:26.08electronic_eelin this block of code I mean
16:26.09SamotIf you're extensions are 4 digit and someone dials + then 15 digits they are calling the PSTN
16:26.38SamotUnless you are creating extensions that collide with PSTN routable patterns....
16:26.50SamotThen if they dial specific types of patterns they are calling the PSTN
16:26.53SamotNot another extension.
16:27.36electronic_eellet me explain what I want to do: I want to always execute some code when someone dials any extension
16:27.54SamotOK
16:27.57SamotI got that
16:28.08electronic_eelso I could add that piece of code to any extension specific block, but I'd need to duplicate the code over and over
16:28.13electronic_eelI want to avoid that
16:28.23SamotWhat do you consider an extension?
16:29.01electronic_eelwhat matches the "exten =>"
16:29.09SamotOK.
16:29.19SamotWell you can't do what you want then.
16:29.29Samot_X. will not match _+X.
16:30.44electronic_eelmy idea was to have a context  "from-internal-start", there I use  "exten => _." to catch everything, use my piece of code that should always be run and then do a Gosub(from-internal-real,${EXTEN},1)
16:31.04electronic_eeland the exten specific handling is in from-internal-real
16:31.31electronic_eelthis seems to work on the first glance, but I get this warning message, so I'm not sure if it is the right way to go
16:31.52*** join/#asterisk cation21 (cation21@gateway/vpn/protonvpn/cation21)
16:31.53SamotThe warning message is from using X.
16:31.57SamotBecause that's lazy
16:32.16electronic_eelI think it is not from "X." but "_."
16:32.24SamotSorry _X.
16:32.30SamotBecause it basically matching everything.
16:32.45electronic_eelexactly, I want to match everything
16:32.53SamotOK so you're going to get the warning
16:33.21SamotOh wait.. _.
16:33.23SamotYeah...
16:33.29SamotThat's just asking for trouble.
16:33.33electronic_eelthe question is if I can ignore the warning in this case, or if some corner case will not work properly
16:33.42SamotYou can ignore it.
16:34.32electronic_eel"That's just asking for trouble." -> you mean for regular uses, not for my specific usecase? or for my usecase too?
16:35.44SamotWell I don't know.
16:35.49SamotI haven't seen your dialplan.
16:35.59SamotBut you're allowing everything in and then processing it.
16:36.10SamotIs it being processed properly? Will things slip through?
16:36.29SamotWill you end up with someone pwning the box or a phone and dialing things that you don't want?
16:36.52SamotYou're using a gosub
16:37.00SamotSo you're not "duplicating" things.
16:37.36Samotexten => _+X.,1,gosub(start,${EXTEN:1},1)
16:37.49Samotexten => _X.,1,gosub(start,${EXTEN},1)
16:37.54SamotLook at that
16:38.09SamotTwo pattern matches being sent to the gosbu.
16:38.12SamotTwo pattern matches being sent to the gosub.
16:39.03SamotHere's the thing, in general most PBX systems have things for internal dialing
16:39.10SamotAnd then they have things for external dialing.
16:39.27SamotBecause those are two different things.
16:39.48electronic_eelyeah, that would be a possibility. but then I'm just catching numbers and international + calls. but what happens with * codes? always when I extend the regular context, I now also have to check the start-dialplan and add the patterns there. I'd like to avoid that
16:40.28SamotIs this a PBX ?
16:40.35SamotOr just being used to send calls to the PSTN?
16:40.54electronic_eelabout external and internal dialing: yeah, I have that. it is in the real context that I gosub to
16:41.34electronic_eelthis is a pbx, with lot's of internal handsets, several external pstn gateways and so on
16:42.08SamotSo just do _. and accept the fact its going to warn you.
16:42.12SamotThen do what you do in your gosub.
16:42.54electronic_eelso you said one problem could be proper fallthrough for illegal numbers
16:43.09SamotWell you're accepting anything from the endpoints
16:43.26SamotBut you're saying your gosub will hve internal/external logic
16:43.35SamotSo there must be proper pattern matches there.
16:44.06Samot_. doesn't stop Internaltional dialing
16:44.12Samot_X. doesn't either.
16:44.13electronic_eelexactly. what I'm doing is accepting everything, set some variables there, do some logging, and then the gosub
16:44.27SamotI get you're accepting everything.
16:44.44SamotThe problem with that is you aren't controlling what you are accepting.
16:44.51*** join/#asterisk drathir_tor (~drathir@gateway/tor-sasl/drathir)
16:45.01electronic_eelI'd say the  _.,1,gosub(real,${EXTEN},1) should then do the regular fallthrough in the real context
16:45.11SamotSo that means if your dialplan is being made to "reduce code lines" and just is catch all all the way through..bad things can get through.
16:45.21SamotI haven't see what that does
16:45.48SamotCan't say it would be right, it could have something wrong you're not checking/catching
16:46.04electronic_eelshould I pastebin a snippet of the dialplan?
16:46.09SamotSure.
16:49.13electronic_eelhttps://pastebin.com/CiuM6uxD
16:49.54electronic_eelso this is just a snippet, not the complete thing. but I think it shows how I plan to use it
16:49.57igcewielingYou almost never want to use _.
16:50.34electronic_eeligcewieling: yeah, the warning message makes that clear. the question is if my usecase is one of the few sensible ones or not
16:50.39SamotThis looks bad.
16:50.43SamotAlso macro is dead.
16:50.51SamotShow these macros.
16:51.08igcewielingelectronic_eel: I cannot think of any use case for _,
16:51.26igcewielinguse _X. if you must
16:52.10electronic_eeligcewieling: did you read the conversation with Samot above? I'd like to catch all numbers dialed, without duplicating the code
16:52.53SamotShow the macro-trunkdial
16:57.07electronic_eelhttps://pastebin.com/JiKFq3i2
16:57.22electronic_eelthis is macro-trunkdial and the context that is called from it
16:57.54electronic_eeldon't remember why it is called macro-*, probably it evolved from some older example
16:58.24SamotYeah, this is bad stuff.
16:58.39electronic_eelcould you elaborate?
16:59.07SamotIt's just catch all patterns.
16:59.35electronic_eelbut why is this bad?
16:59.45SamotI mean, it will work. Nothing I would ever do.
16:59.48electronic_eelthe local handsets are allowed to call all kinds of numbers
16:59.56electronic_eelinternational and so on
17:00.10SamotIt will work.
17:00.22SamotIt's not something I, or probably most in here, would do.
17:00.29electronic_eelwhy not?
17:00.34SamotControl.
17:01.52igcewielingThe most common problem with _. is that, while it matches 1234, it also matches 'h'
17:02.02electronic_eelSamot: hmm, I don't really get it yet.
17:02.09SamotWhat you're doing will work.
17:03.01electronic_eelSamot: in [macro-trunkdial] I limit what kind of numbers are allowed to be used outbound. so for example sending * codes outbound is forbidden
17:03.22SamotWe have different methods.
17:03.29SamotYou're will work.
17:03.37electronic_eelsending * codes outbound is the thing I'm worried about most, bc it means the user could change setup of the trunk
17:03.43SamotYou'll get warnings for some of those catch alls but it will work.
17:04.32electronic_eelhmm, I don't want it to "just work" and walk away, I want to do it properly. but for this I'd like to understand your concerns
17:04.49SamotPBX's aren't written with "minimal code" in mind.
17:05.12SamotSure you want to no dupliacte certain functions over and over again. So that's what GoSubs are for.
17:05.29igcewielingThe normal practices of good programming don't generally apply to the Asterisk Dialplan.
17:05.36SamotAnd i isn't going to do much for you anyways.
17:09.05electronic_eelhmm, so you prefer to do very detailed exten matches and a gosub from each?
17:09.37SamotIf that's even needed.
17:10.12SamotSometimes a few lines a dialplan in a context, exten does what you
17:11.06Samot+want
17:11.22electronic_eelbut if it is like 3 lines of the same code I need for every number pattern, and I have like 10 patterns or so, do you really duplicate these 3 lines over and over again? what if I need to change them?
17:12.21SamotOK
17:12.38SamotYou don't want a lot of dialplan, do what you're doing.
17:12.55SamotThis is why people generally do it by sections/features
17:13.12SamotUse include => statements.
17:15.03electronic_eelhmm, but include includes the stuff from another context. it does not allow me to include something and give it a new exten match pattern
17:15.17SamotYou're missing the point.
17:16.41Samothttps://www.irccloud.com/pastebin/HOU2EEBB/
17:16.49*** join/#asterisk opal (~wowaname@volatile/founder/wowaname)
17:18.02SamotSo now I want to change how they access voicemail. I change the voicemail context
17:18.11SamotI want to change what featurecodes, I change that context
17:18.57SamotI want to add something new I make a new context for it and add an include statement to that from-phones context
17:19.28SamotNot here's one giant context that could have all the patterns they could send me and I deal with it that way
17:19.29electronic_eelok, but how are these included blocks brought into the correct order then?
17:19.39SamotHow you order them.
17:19.49SamotThat order is how they would be extecuted.
17:20.13SamotIf not match continue to the next.
17:21.23electronic_eelwhen I do exten => _X,1 I have the first line to be executed for the matched extensions. when I include lot's of contexts and they all have their stuff start at 1, I get a conflict
17:21.46electronic_eelor not?
17:22.30igcewielingnot really
17:26.29electronic_eelwhat happens if I include several contexts and they all contain exten => _X.,1,SomeAppliaction(), each context wanting to execute a different application?
17:27.43SamotThe first context that has it, wins.
17:27.53SamotThis is why people don't do catch alls.
17:27.56SamotControl.
17:28.28electronic_eelbut how will using the includes help me then?
17:28.43SamotBecause you put the pattern matches in those contexts.
17:29.06SamotIf *97 is how they haccess voicemail....then the voicemail conext has *97,1,
17:29.13SamotAnd that's it.
17:29.20SamotExact match.
17:29.50electronic_eelyeah, but I often need to do stuff that is for all calls. like setting a variable which controls setting the caller id. or one that controls the ringtone. and so on
17:29.59SamotYeah
17:30.04SamotSo use AstDB.
17:30.16SamotStore the information there.
17:30.32SamotCall on it based on criteria.
17:31.50electronic_eelI have lots of conditions I need to check to be able to set the correct headers in a dial()
17:32.33Samothttps://www.irccloud.com/pastebin/EeRPD2ja/
17:32.40SamotAnd?
17:32.53SamotMy accounts have 2 dozen plus AstDB entries.
17:32.57SamotEach
17:33.21SamotDo they want to auto anwer, what do they want to do when paged
17:33.32SamotWhat's their callerID, internal/external/emergency
17:33.46SamotWhat is their endpoint location ID (for emergency)
17:33.53SamotWhat is their ring timer
17:34.01SamotDo they have voicemail enabled or not
17:34.14electronic_eelhmm, the stuff I need is usually not by account, but by call. what is the context of this call? set the correct ringtone. did the user select to hide the caller id? and so on
17:34.33SamotOK that can be done too
17:34.44SamotIs this PSTN call being recorded?
17:34.50SamotIs this a International call
17:34.54SamotIs this an emergency call
17:35.09SamotAgain, you break up your dialplan but what functions it needs to serve.
17:36.56electronic_eelyeah, I do checks like these for all calls and set the specific variables using Set(). then I can use these in the context I call in the b() option of dial to set the correct headers
17:37.12electronic_eelas most stuff can only be set there
17:37.36electronic_eelI mean setting specific pjsip headers
17:37.49electronic_eeland they are what control the ringtone, caller-id privacy and so on
17:39.45SamotOK so it seems your way will work fine.
17:41.01SamotJust keep in mind something you asked earlier: "what if i need to change it"
17:41.18SamotBy using AstDB to hold settings, I don't touch the dialplan to change those settings.
17:41.47electronic_eelI want to change it only in one place, not having to look up hundreds of places and forgetting a few
17:41.57SamotOK.
17:42.38electronic_eeland since most of the complicated stuff I do is not per account, but per call, I want to put it in dialplan
17:42.49SamotSure.
17:43.58electronic_eeland to put all variables in a consistent state, I usually want all calls proceed through the bunch of the same functions. and the issue with that is what started this conversation...
17:45.46SamotAnd what I described with the includes does exactly that
17:45.58SamotEach call goes through the same checks all the time.
17:47.30electronic_eelbut what you call "checks" is just by extension. what if I want to look into specific pjsip headers of all calls and decide based on that?
17:47.53SamotI put in it a context where it is needed and do that.
17:48.08SamotBTW, I do that already with a gosub.
17:48.21SamotI pull the PAI, custom headers and deal with whats in them.
17:48.34SamotIt's a Gosub I call on *when needed*
17:49.37Samotelectronic_eel: I run Asterisk in a multi-tenant setting.
17:49.42electronic_eelok, but with your method you can't do it on really all calls in that context, you have to individually match their extensions
17:49.57SamotEach call comes in and loads Tenant settings, user settings and deals with the type of call it is.
17:50.06SamotWhat?
17:50.20Samot_1NXXNXXXXXX <-- call on it then.
17:50.33electronic_eelwith "individually" I mean what is possible to match with asterisk dialplan matches
17:50.54electronic_eeland there is nothing that matches all letters and special chars that are allowed to be dialed in sip
17:50.55SamotI have matches based on what is allowed.
17:51.19SamotHow often are users sending alpha characters?
17:51.26SamotI can match * or +
17:52.18electronic_eelyeah, probably I will end up duplicating the gosub for numbers and + * #
17:52.34SamotHow are you duplicating the gosub?
17:52.41SamotYou're going to write a gosub for each?
17:53.22electronic_eelI mean match and call the same gosub, so I need an extra context and 4 gosub lines
17:53.45SamotOK
17:53.50SamotI said your method would work.
17:54.03SamotYou want minimal dialplan, do it.
17:54.30SamotBut how people who design PBX systems would not be your way.
17:56.35electronic_eelhmm, I still don't get why pbx designers wouldn't do it that way. I mean I have access controls that allow what kinds of numbers are allowed to be dialed. they are just packed together in just one place, and not duplicated all over
17:57.29SamotI said it before: Control
17:57.47SamotDo you have anything do deal with Intercom settings?
17:57.55SamotSetting up auto-answering, paging?
17:57.57SamotParking?
17:58.00SamotRing Groups?
17:58.05SamotFollowMe?
17:58.19SamotAny sort of Class of Services to control how the user can dial?
17:58.24SamotWhat they can dial?
17:59.25SamotA PBX could have 10 Paging Groups each with different settings
17:59.42electronic_eelI put the calls into contexts based on the devices they come from. there I check what they can dial, and then the calls proceed from there
17:59.45SamotBut each of those paging groups still call on the same core GoSubs for settings, etc.
18:00.00SamotThat's not really how a PBX works.
18:00.51SamotIt's part of how a PBX can work. But not all of it.
18:01.00electronic_eelthis is a single tenant pbx
18:01.11SamotI'm talking about a single tenant PBX
18:02.23SamotWhich will handle things based off of various factors.
18:03.04SamotWhat endpoint is making the call (or user if hotdesking or both), what type of call they are making and what permissions for the user/endpoint and the feature they are using...
18:03.34SamotSo Bobby is extension/user 200
18:03.48SamotBobby could log into Device A, B or C because hotdesking
18:04.09SamotIt doesn't matter if it's A, B or C, Bobby can only dial certain things.
18:04.21SamotPerhaps he can't dial international
18:04.35SamotPerhaps he can't use certain feature codes.
18:05.58electronic_eelyeah, I have something similar. but you log in on the phone and then the phone config is updated through autoprovisioning, so in the end the registration on asterisk is always from the same user, regardless which phone they use
18:07.01electronic_eelso I just need one entry in the pjsip config and can set the context for the user there. the context is what then controls their rights
18:07.57SamotThen I'm going to say this one last time on the matter. Your setup with work just fine. But this feels like a giant circle conversation right now.
18:09.32electronic_eelok, so I think my difference to other pbx implementors is that I just need a limited set of flexibility. so I can get by with a simpler dialplan
18:17.38electronic_eelSamot: you wrote "macro is dead" before. is using macro() deprecated or something?
18:18.10SamotYes.
18:18.24electronic_eelI just realized that I need Macro() when I want to have multiple matches going to the same context without losing the original extension
18:18.26SamotIt's slated for removal.
18:19.30Samotfile: Doesn't not get installed anymore by default?
18:19.38filewhat what
18:19.39fileMacro?
18:19.42SamotMacro()
18:19.51filecorrect, not built by default
18:19.59SamotAs of 16?
18:20.31Samotelectronic_eel: It is slated for removal from Asterisk. Don't count on it.
18:20.31electronic_eelstrange, there is no notice of deprecation or anything here: https://wiki.asterisk.org/wiki/display/AST/Asterisk+18+Application_Macro
18:20.47file16 sounds about right
18:21.57electronic_eelso wouldn't it make sense to add some warning about this to the wiki page I linked above?
18:22.11SamotIt would be in the changelogs
18:22.22SamotWhen Asterisk 16 was released.
18:22.43Samotelectronic_eel: Did you have to select app_macro when you installed Asterisk?
18:23.22electronic_eelI don't know, I haven't used Macro() yet. I was just thinking about it
18:23.36electronic_eeldon't know if I have it installed it or not
18:23.49Samothttps://wiki.asterisk.org/wiki/display/AST/app_macro+Deprecation
18:23.57igcewielingYou don't want to use Macro
18:24.25SamotIt's been deprecated since Asterisk 11
18:24.40SamotIt's no longer installed by default in Asterisk 16 and is slated for removal.
18:25.07SamotI'm going to guess the next LTS (not 18) won't have it.
18:25.20fileis presently trying to clean up removal policy, standardize process, yada yada
18:26.13electronic_eelI suggest to add a note about this to  https://wiki.asterisk.org/wiki/display/AST/Asterisk+18+Application_Macro so that you don't have to browse old changelogs, but immediately see it in the docs of your ast version
18:26.28SamotBecause you can do: exten => _X.,1,Gosub(mysub,${EXTEN},1())
18:26.40SamotIt's been since 11!
18:26.43SamotVersion 11
18:26.50SamotThis isn't new breaking news.
18:26.57fileyou can file an issue about it, it's not as easy as just doing that
18:27.22filewiki page is generated so it requires a code change, plus that information is already stored in the module so pulling it out would be best - otherwise having it in two places means it could be missed or go out of sync
18:28.07electronic_eelif this part of the wiki was a traditional, manually edited wiki, I'd have changed it myself
18:28.37SamotYou know Chan_SIP is deprecated too?
18:28.46electronic_eelI know, everything is pjsip
18:28.53SamotSo that just happened
18:29.10SamotYou know that but not something that happened years ago
18:29.36electronic_eelyeah, because I didn't use asterisk 11, I started with 16, so I did not read the old changelogs
18:33.09electronic_eelso how do I do this without Macro(): I have 4 exten matches: _X., _+., _*., _#. I want to gosub/macro/whatever from each of them into a context and execute some code there which is really written only once (so just one context macht), and then when that code is done, return to the original context?
18:33.24Samot2:26:28 PM <Samot> Because you can do: exten => _X.,1,Gosub(mysub,${EXTEN},1())
18:33.38SamotUnlike Macro(), you're not confined to just the s extension
18:34.32electronic_eelbut when I Gosub(mysub,${EXTEN},1()), I still need either _. there or copy the code several times there
18:36.01SamotThen use s, send the exten as a argurment and return back
18:36.01electronic_eelso if _. is dangerous and to be avoided how to work around it without having to copy the code 4 times?
18:36.28electronic_eelok, guess that should work
18:36.36SamotNo, it does work.
18:39.29*** join/#asterisk Testeree (1b07906f@27.7.144.111)
18:41.58TestereeI am trying to setup a browser(webrtc-jssip) based dialer, i'm able to make calls from the browser, but incoming calls are throwing an invalid 'From' header on the dialer end. seems like asterisk is sending an invalid hostname for the
18:43.30TestereeI am trying to setup a browser(webrtc-jssip) based dialer, i'm able to make calls from the browser, but incoming calls are throwing an invalid 'From' header on the dialer end. seems like asterisk is sending an invalid hostname like `From: "USERNAME" <sip:1000@39fafcebb19e>;tag=9dDgi8DUjTATYPlthnbv4fp8NhU-zIRv`
18:44.53Testereehere  `39fafcebb19e` seems invalid. and it seems like the same issue mentioned here https://github.com/versatica/JsSIP/issues/560
18:48.23*** join/#asterisk sa02irc (~mbax@155-079-043-212.ip-addr.inexio.net)
18:48.35Testereethe suggested fix was to `In my case i use "-h" in the run statement to fix it` not sure what it means though.
18:59.48igcewielingA dialer, eh?
19:00.10*** join/#asterisk pchero (~pchero@211.178.226.108)
19:01.53seanbrightit means that the user from that issue was running asterisk in a container (docker maybe?) and had to pass -h to make it use a good hostname
19:02.13seanbrightif you are running asterisk in a container, you need to set up a valid hostname - how you do that is beyond the scope of this channel
19:02.53Testereeok. passing -h isn't for asterisk then i hope :)
19:03.50Testereeis there a way to override the hostname asterisk will use?
19:05.59*** join/#asterisk drathir_tor (~drathir@gateway/tor-sasl/drathir)
19:06.24Testereemaybe `default_realm`
19:16.38Testereenope
19:30.35*** join/#asterisk sa02irc (~mbax@155-079-043-212.ip-addr.inexio.net)
19:36.12Testereenot even `systemname` in asterisk.conf
19:41.48*** join/#asterisk Jesterboxboy (~Thunderbi@84-115-150-8.cable.dynamic.surfer.at)
19:46.04Testereeit is either a bug or bad design without providing the ability to override the hostname being used(random string is a valid hostname, it is invalid asterisk is trying to put it in From header without validating). can't find any documentation on it.
19:46.38fileit will usually put the IP address of the system in, if that can't be determined then it resorts to the hostname
19:46.48filefrom_domain on the endpoint can be used to override the domain portion of the From
19:46.51fileor fromdomain in chan_sip
19:47.04fileif using Docker then the -h argument allows setting an explicit hostname
19:48.21Testereefile, even if it uses the hostname before asterisk puts it in the 'From' header to something mangled to make it valid.
19:48.59igcewielingalways have every IP on the system listed in /etc/hosts
19:49.52Testereesetting the docker hostname feels like cutting the foot to fit into a shoe :P
19:53.22Testereehalf a day wasted 🤦
19:54.10igcewielingStop using half-assed virtualization and use a real VM like VMWare or KVM.
20:17.23*** join/#asterisk drathir_tor (~drathir@gateway/tor-sasl/drathir)
21:38.47SamotRIP Eddie Van Halen
21:47.23*** join/#asterisk forgotmynick (uid24625@gateway/web/irccloud.com/x-rpznddfvfwawkxyz)
22:51.44grysibiria: hi, see config mappings here: https://dpaste.com/43ML3S5M2.txt (it is "Config Engine: curl" followed by "Config Engine: sqlite3" and that's it)
23:18.03*** join/#asterisk [TK]D-Fender (~joe@64.235.216.2)

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.