00:21.25 | *** join/#asterisk sinaowolabi (~Sina@102.134.114.1) |
01:14.49 | *** join/#asterisk tsal (~tsal@i59F4DB94.versanet.de) |
02:12.35 | *** join/#asterisk mr44er (~mr44er@dynamic-046-114-004-195.46.114.pool.telefonica.de) |
02:41.57 | *** join/#asterisk pvoigt (~Linux@unaffiliated/pvoigt) |
02:43.20 | *** join/#asterisk fstd_ (~fstd@unaffiliated/fisted) |
03:00.59 | *** join/#asterisk Janos (~textual@201.204.94.76) |
03:33.26 | *** join/#asterisk Enitin (enitin@gateway/vpn/privateinternetaccess/enitin) |
03:41.16 | *** join/#asterisk sa02irc (~mbax@155-079-043-212.ip-addr.inexio.net) |
04:04.25 | *** join/#asterisk forgotmynick (uid24625@gateway/web/irccloud.com/x-vhmsxzsagbbchphc) |
04:05.32 | *** join/#asterisk hfb (~hfb@193.36.225.22) |
04:21.30 | *** join/#asterisk AsteriskRoss (~AsteriskR@37.157.48.2) |
05:21.34 | *** join/#asterisk Janos (~textual@201.204.94.76) |
06:54.35 | *** join/#asterisk BakaKuna (~Thunderbi@2a02-a446-ae46-1-fd4c-8933-8bcd-a822.fixed6.kpn.net) |
07:08.15 | *** join/#asterisk dakudos (~dakudos@c-73-229-175-50.hsd1.co.comcast.net) |
07:51.38 | *** join/#asterisk sekil (~sekil@nat-73.net011.net) |
07:52.50 | *** join/#asterisk sekil (~sekil@nat-73.net011.net) |
08:01.32 | *** join/#asterisk DodgeThis (~DodgeThis@246.102.90.149.rev.vodafone.pt) |
08:14.40 | *** join/#asterisk sinaowolabi (~Sina@102.134.114.1) |
08:30.26 | *** join/#asterisk idtentee (sid101023@gateway/web/irccloud.com/x-lrehoultaylbwwzp) |
08:30.30 | *** join/#asterisk gregs (sid160074@gateway/web/irccloud.com/x-hblhsmjkwigkdzwl) |
08:33.10 | *** join/#asterisk lankanmon (~LKNnet@cpeb4fbe4e331bd-cm64777d632380.cpe.net.cable.rogers.com) |
10:26.22 | *** join/#asterisk HannaM (~quassel@p54849510.dip0.t-ipconnect.de) |
10:50.55 | *** join/#asterisk sinaowolabi (~Sina@102.134.114.1) |
12:00.14 | *** join/#asterisk gerhard7 (~gerhard7@86-87-238-48.fixed.kpn.net) |
12:07.42 | *** join/#asterisk riddlebox (~riddlebox@2600:6c42:7900:f1e1::1b8b) |
12:16.29 | *** join/#asterisk irrgit (~ch33se@192.241.175.183) |
12:46.43 | *** join/#asterisk Enitin (enitin@gateway/vpn/privateinternetaccess/enitin) |
12:47.25 | *** join/#asterisk Enitin (enitin@gateway/vpn/privateinternetaccess/enitin) |
13:24.33 | *** join/#asterisk rpifan (~rpifan@p200300d2672b5d00ed6fae8b2bffb0f9.dip0.t-ipconnect.de) |
13:26.59 | *** join/#asterisk CatCow97 (~mine9@c-73-96-109-206.hsd1.or.comcast.net) |
13:42.04 | *** join/#asterisk nglpx1 (971b3689@151.27.54.137) |
13:42.31 | nglpx1 | hi |
13:44.28 | nglpx1 | I need to change country code, the prefix for outbound calls |
13:44.49 | nglpx1 | someone can help me please? |
13:45.51 | nglpx1 | I've compiled asterisk from source, it works but country code is wrong |
13:47.34 | Samot | You set the country code. |
13:47.42 | Samot | So if it is wrong, you've set it wrong. |
13:47.46 | nglpx1 | where? |
13:47.54 | Samot | In the dialplan? |
13:48.13 | nglpx1 | no setting for country code, I use asterisk 13.8 |
13:48.22 | Samot | What? |
13:48.29 | Samot | The country code is part of a pattern match. |
13:48.39 | Samot | You make the proper pattern matches based on the digits presented. |
13:48.59 | nglpx1 | in extensions.conf? |
13:49.07 | Samot | Yes. |
13:49.20 | Samot | How is this call being made? |
13:49.25 | Samot | With the wrong prefix? |
13:50.36 | nglpx1 | outbound calls work only if I call an american number |
13:51.40 | nglpx1 | no outbound calls for different countries |
13:52.19 | Samot | Do you have the right patterns for international calls outside the US? |
13:54.03 | nglpx1 | please, I am totally new in Asterisk, I need prefix +39 to all outbound calls |
13:55.12 | igcewieling | Chupahora? |
13:57.36 | nglpx1 | I don't know the pattern format, I need to modify only extensions.conf? |
13:58.01 | *** join/#asterisk AsteriskRoss (~AsteriskR@37.157.48.2) |
13:58.07 | Samot | nglpx1: There's no default config for Asterisk. |
13:58.11 | Samot | You have to write extensions.conf |
13:59.30 | nglpx1 | the provider sent me extensions.conf but I need to modify the prefix for outbound calls from us prefix to it (+39) |
14:00.49 | Samot | https://wiki.asterisk.org/wiki/display/AST/Pattern+Matching |
14:01.01 | nglpx1 | ; send all other numbers to outbound trunk |
14:01.02 | nglpx1 | exten => _[0-9].,1,NoOp(#### [from-internal] ####) |
14:01.02 | nglpx1 | exten => _[0-9].,n,Set(CALLERID(num)=39800303303) |
14:01.03 | nglpx1 | exten => _[0-9].,n,Dial(SIP/+${EXTEN}@trunk) |
14:01.03 | nglpx1 | exten => _[0-9].,n,Hangup() |
14:01.09 | seanbright | ~pb |
14:01.10 | infobot | pastebin is a web-based service where you should paste anything over 3 lines so you don't flood the channel. Here are links to a few: https://pastebin.com, https://paste.ubuntu.com, http://paste.debian.net; or install pastebinit with yum or aptitude. |
14:01.15 | nglpx1 | this is the part to modify? |
14:02.12 | nglpx1 | http://paste.debian.net/1195225 |
14:03.17 | Samot | Are you allowed to make International calls? |
14:03.36 | Samot | Because if that pattern lets you call to the US but no where else, buddy you have US calling only. |
14:03.38 | nglpx1 | yes |
14:03.53 | Samot | Show us a call. |
14:04.14 | nglpx1 | I can call everywhere |
14:04.16 | Samot | SSH into the asterisk server, do: asterisk -rvvvvvvvvvvv |
14:04.24 | Samot | OK, so what's problem? |
14:04.44 | Samot | You can't prefix +39 to US/Canada calls. |
14:05.00 | Samot | You can't prefix +39 to anything but to +39 destinations. |
14:05.29 | nglpx1 | but I need +39 destination 99% of times |
14:05.55 | Samot | So take what you have already |
14:06.08 | Samot | and put 39 between the + and ${EXTEN} |
14:06.27 | Samot | It will mean you can only call Italy. |
14:06.41 | Samot | So if that's all you need, then you're fine. |
14:06.42 | nglpx1 | In the cli donât show any error, when i call in us the call go out when i type any other country, the softphone show me that âService Unavaible 403â |
14:07.06 | Samot | You need to make sure you can dial those from the provider. |
14:07.26 | Samot | exten => _[0-9].,n,Dial(SIP/+${EXTEN}@trunk) << to >> exten => _[0-9].,n,Dial(SIP/+39${EXTEN}@trunk) |
14:07.39 | Samot | Every call will be prefixed with +39 |
14:08.03 | nglpx1 | I am sure |
14:09.05 | Samot | Well that was the answer to your need to prefix everything with +39 |
14:12.52 | nglpx1 | I tryed to call a number after changing configuration, result âTemporarlyUnavaible(403)â |
14:14.12 | *** join/#asterisk kharwell (uid358942@gateway/web/irccloud.com/x-brxfhiuifigakcie) |
14:14.12 | *** mode/#asterisk [+o kharwell] by ChanServ |
14:15.14 | nglpx1 | 403 Forbidden |
14:16.07 | Samot | I guess we'll need to se a call. |
14:16.15 | Samot | SSH into the box and do the following |
14:16.18 | Samot | asterisk -rvvvvvvvvv |
14:16.24 | Samot | sip set debug on |
14:16.37 | Samot | Then pastebin the output so we can see it. |
14:17.44 | *** join/#asterisk bford (uid283514@gateway/web/irccloud.com/x-mspacwlkmqdknzjc) |
14:17.44 | *** mode/#asterisk [+o bford] by ChanServ |
14:18.45 | nglpx1 | nothing changed, same error as before, I think it's not the right section, can I pastebin the content of extensions.conf? |
14:19.00 | Samot | Show us the output. |
14:19.07 | Samot | We understand it. |
14:19.19 | Samot | We'll know what to look for. |
14:29.10 | nglpx1 | there are a lot of messages in the log, but I think that for asterisk it's all right, because it's a valid configuration. The softphone error code is 480 |
14:32.44 | seanbright | nglpx1: would you like help resolving this issue? |
14:33.07 | nglpx1 | yes, please |
14:33.20 | seanbright | nglpx1: sure thing. you should provide Samot with the information he is asking for. |
14:37.30 | Samot | nglpx1: Your provider is rejecting the call. There could be various reasons as to why they are. Us seeing this information will help us see any glaring issues that stand out. Otherwise, you'll have to ask them why they are rejecting your calls. |
14:47.36 | *** join/#asterisk riddlebox (~riddlebox@2600:6c42:7900:f1e1::1b8b) |
14:52.22 | Samot | Alright then. |
14:52.45 | nglpx1 | no.... it's difficult, many many messages.. |
14:52.55 | *** part/#asterisk igcewieling (~ewieling@199.27.202.86) |
14:53.03 | Samot | How can there be many many messages? |
14:53.52 | nglpx1 | I don't know, there are a lot of messages in the asterisk -r |
14:54.09 | Samot | Uhm, is this some VPS in the cloud? |
14:54.09 | Samot | Directly on the Internet? |
14:54.41 | nglpx1 | Asterisk is on a vps in the cloud |
14:55.12 | Samot | Did you at least secure it? |
14:55.30 | nglpx1 | 100% |
14:56.01 | nglpx1 | aaah secure it..... no at the moment |
14:56.55 | nglpx1 | it's on a public ip asddres |
14:56.59 | Samot | Then your box could be just getting hit with spam. |
14:57.08 | Samot | People trying to send calls through the box. |
14:57.12 | Samot | You need to secure it. |
14:58.41 | nglpx1 | there is a password to know in sip.conf |
15:00.58 | *** join/#asterisk Janos (~textual@201.204.94.76) |
15:02.09 | nglpx1 | you mean that many messages are spam? |
15:04.43 | Samot | Yes. People who shouldn't be able to send calls through your system are trying to. |
15:05.03 | Samot | Plus if you don't have anything secured, that means SSH and everything else is open for them to get at. |
15:09.34 | nglpx1 | how to sicure? VPN? |
15:15.11 | zamba | is the Hangup() command the final command in an extension? |
15:15.46 | zamba | i have this very simple thingy: https://dpaste.org/VeyA |
15:16.11 | zamba | i basically want to dial in to an extension, record a message and when it's done it'll hang up and then i want it to dial me back and then playback the same message |
15:16.27 | zamba | but i guess the Hangup() is the final part and the extension is then completed? |
15:16.58 | sibiria | in your example nothing except the Record() will be invoked |
15:17.08 | zamba | sibiria: oh? why? |
15:17.18 | sibiria | because you hang up afterwards |
15:17.26 | zamba | yeah, that's what i was expecting |
15:17.33 | zamba | so how can i do what i want with this? |
15:17.46 | sibiria | remove the hangup() right after record() |
15:17.57 | zamba | sibiria: yeah, but i still want to terminate the first call |
15:19.03 | seanbright | ok, so someone calls in and records a message and then you want to hang up on them and call someone else and play that recording to them |
15:19.04 | sibiria | the channel can't continue to live on its own when you hang it up |
15:19.05 | zamba | and also, nothing is played back to me |
15:19.13 | zamba | seanbright: that is correct |
15:19.29 | sibiria | something else will need to place the second call |
15:19.41 | zamba | sibiria: yeah, i was guessing that.. but how? |
15:19.57 | sibiria | something else means something outside asterisk, which uses asterisk to make calls |
15:20.16 | zamba | but i want this to happen immediately.. not a cron job or something like that |
15:20.32 | *** part/#asterisk maximCH (~maximCH@mail.swill.org) |
15:20.40 | sibiria | make it a systemd unit with a tight timer, or a permanently running job |
15:20.52 | sibiria | monitoring e.g. your call recording directory |
15:21.33 | sibiria | store the calling number and some unique identifier with the recording, so the processor knows who to call and replay the message |
15:21.57 | zamba | what kind of interface should this have to asterisk? agi? |
15:22.10 | sibiria | i'd use call files |
15:24.08 | sibiria | a second option is to do this with a hangup handler, but that poses a few other kludges; you still need something that picks up the recording and makes it available to asterisk etc. |
15:24.44 | zamba | ok, maybe i should describe my challenge in full first.. what i want to create is a method for people on a work shift to call a number to ask for more personnel.. the person should then leave a message and then asterisk should start dialing a list of number in sequence and play back this message.. if the person on the other side is available and can come to work then they should press 1 or |
15:24.46 | zamba | something.. and then the personell hunt should stop |
15:24.58 | zamba | that's my end goal here |
15:25.25 | sibiria | and just like that the echo server task description grew to something different |
15:27.53 | zamba | sibiria: of course.. i have to start somewhere.. and the first step was to just see if i was able to record a message and then dial someone else to play back this message |
15:31.18 | sibiria | you can play around with using hangup handler, to contain everything to asterisk for now. just to wet your feet so to speak |
15:31.25 | zamba | i'm trained to tackle a big problem in smaller problems :) |
15:36.21 | *** join/#asterisk overyander (~overyande@50.45.0.107) |
15:39.56 | zamba | could AGI potentially be used for this? |
15:41.08 | zamba | because i really want to interface using python.. i don't really want to use loops and stuff directly in dialplans :) |
15:41.24 | sibiria | depends on if you want an easier time to programmatically handle some things |
15:41.41 | sibiria | but just a simple echo callback test is doable entirely within the dialplan |
15:43.19 | Enitin | Quick question: What is wrong with my Asterisk setup when only the caller can hear audio? |
15:43.34 | Enitin | It automatically hangs up after a few seconds. |
15:44.04 | zamba | Enitin: usually firewall issues, i'd guess |
15:44.14 | zamba | do you see stuff like retransmission timeout issues in the console? |
15:45.10 | Enitin | "Packet timed out after 32000ms with no response" |
15:45.20 | seanbright | firewall/nat |
15:46.19 | zamba | Enitin: yeah, firewall/nat.. the packets are not allowed in a certain direction.. it's UDP, so it's not like with tcp where you have the session established and you are able to communicate bidirectionally |
15:47.30 | Samot | zamba: I do what you described. |
15:47.58 | zamba | Samot: what do you mean? you have something like this already running? |
15:48.25 | Samot | Yes. That is exactly what I meant. |
15:48.34 | Enitin | Oh. That was it. Thank you. :) |
15:48.41 | zamba | Samot: do you mind sharing? |
15:50.28 | Samot | It's really not that hard. Caller calls in, records message, approves message, enters group it should go to, triggee system call to backend, hang up callm |
15:50.53 | Samot | Back end starts to send AMI originates to system. |
15:51.50 | Samot | Call users, use AMD to detect humans or machine and handle accordingly |
15:52.13 | *** join/#asterisk sa02irc (~mbax@155-079-043-212.ip-addr.inexio.net) |
15:52.51 | zamba | yeah, i know what i want to accomplish.. the challenge is how :) |
15:53.15 | Samot | How what? |
15:53.21 | sibiria | zamba: can you share the link you gave earlier to your dialplan? |
15:53.35 | zamba | https://dpaste.org/VeyA <- this? |
15:53.35 | sibiria | and i'll give you a quick modification which should be a working thing to play around with |
15:53.45 | zamba | sibiria: awesome! thanks :) |
15:53.47 | sibiria | right, 1 min |
15:54.09 | zamba | Samot: how to actually tie everything together.. but it seems like you mind sharing, so that's ok enough, i guess :) |
15:54.23 | Samot | I don't do python |
15:54.57 | zamba | that doesn't matter.. i'm just looking for pseudo code.. it's the interfaces i'm wondering about, not the actual algorithms |
15:55.09 | zamba | the algorithm to do this in python is very simple |
15:55.33 | Samot | I have no idea what data you want to send. |
15:55.53 | Samot | When they approve the recording a make a System() call |
15:56.05 | sibiria | zamba: https://dpaste.org/2A9R |
15:56.21 | sibiria | that may work just to get you started |
15:56.35 | Samot | Thats kinda shoddy |
15:56.52 | sibiria | no, it's exactly what's needed as a starting prototype based on his first example |
15:56.53 | Samot | Doesnt even put it in the right language directory. |
15:57.05 | sibiria | and what language would that be? :D |
15:57.08 | sibiria | we don't know |
15:57.20 | sibiria | and none needed to play back audio that isn't categorized as IVR stuff |
15:57.43 | Samot | Thats a piece. |
15:58.14 | Samot | Now there needs to be the part the makes the call, plays back and accepts DTMF |
15:58.30 | sibiria | mhm |
15:59.44 | Samot | Like I dont playback the recording twice in voicemail |
15:59.54 | Samot | But I do if a human answersm |
16:02.03 | Samot | Plus there are no options for the caller to verify the recording or rerecord it |
16:03.20 | sibiria | sounds like a perfect 1 minute prototype |
16:04.14 | Samot | It's a poor prototype. |
16:04.27 | Samot | Considering I just gave an outline of how I have it working in production. |
16:04.39 | zamba | Samot: then please share how you did it :) |
16:04.50 | Samot | Share what? |
16:04.51 | seanbright | i'm not sure how describing something is helpful |
16:05.03 | seanbright | "i need something that does X" |
16:05.04 | Samot | OK so you want my code? |
16:05.07 | seanbright | "i have something that does X" |
16:05.09 | sibiria | it's a prototype, not a production ready piece of work :D |
16:05.12 | seanbright | "can i see it?" |
16:05.13 | seanbright | "no |
16:05.13 | seanbright | " |
16:05.22 | zamba | Samot: that would really be helpful |
16:05.29 | Samot | The caller calls in, what do you do to verify that? |
16:05.40 | Samot | So you want me to just hand over hours of work? |
16:05.53 | seanbright | zamba: your are learning an important life lesson right now |
16:05.57 | seanbright | you* |
16:06.02 | zamba | seanbright: oh? :) |
16:06.09 | seanbright | yes, you shouldn't come to #asterisk for help |
16:06.11 | *** join/#asterisk Janos (~textual@201.204.94.76) |
16:06.13 | zamba | seanbright: hehehehe |
16:06.19 | Samot | zamba: Are you doing any caller verification on the caller that can leave a recording? |
16:06.37 | zamba | Samot: yes, i was intending to add that as well.. only a set of numbers are allowed to call in to trigger this |
16:06.58 | Samot | OK so you know how to do that? |
16:07.35 | zamba | Samot: i actually believe i have some code from my previous encounter with asterisk, some years ago |
16:08.00 | Samot | OK, so you don't have an actual method figured out yet. |
16:08.12 | Samot | You just know X callers can make recordings. |
16:09.17 | zamba | i first want to make a proof of concept.. then i finalize it.. and add stuff like security before i make it public |
16:09.28 | Samot | Security is part of the proof of concept. |
16:10.07 | Samot | And how does the recording get sent to destinations? |
16:10.31 | Samot | Is there going to be a database holding user data for sending to? |
16:10.33 | seanbright | there is only one right way to implement a proof of concept and that is to design, develop, test, and deploy a 100% complete application |
16:10.38 | seanbright | obviously |
16:10.48 | zamba | sibiria: thanks a lot for your help.. i'll try and see if i can figure something out |
16:10.49 | seanbright | i think we all know this implicitly |
16:11.01 | Samot | I'm asking real questions here. |
16:11.09 | seanbright | you certainly are |
16:11.13 | seanbright | they have question marks and everything |
16:11.22 | Samot | See when I described the whole "caller calls in to make recording..." |
16:11.41 | Samot | There's callerID verification and a PIN code they need to enter. |
16:11.56 | seanbright | i must be a file in source control cuz i am totally checked out |
16:12.01 | seanbright | (just made that one up) |
16:12.25 | zamba | Samot: yeah, that makes sense.. but this is not something i need beforehand.. the important part is having the calling everyone-thingy set up.. |
16:12.34 | Samot | OK and how are you doing that? |
16:12.47 | zamba | i don't know yet.. that's what i'm trying to figure out |
16:12.52 | Samot | Where is the information for the destination group stored? |
16:13.11 | zamba | for the PoC i'd probably just hardcode this into the dialplan |
16:13.12 | Samot | How will this be triggered once the recording is finished? |
16:13.16 | zamba | as it's a PoC... |
16:13.29 | Samot | Because right now your PoC dialplan handles the recording on hangup. |
16:13.33 | Samot | That's poor. |
16:13.45 | Samot | The caller should be able to re-record and approve the recording. |
16:13.51 | seanbright | zamba: you will not be getting help from Samot |
16:13.58 | seanbright | you will only get belittled |
16:14.03 | zamba | seanbright: yeah, i'm quickly realizing it.. |
16:14.19 | Samot | On the approval, that should be when your trigger for the destination group should be called. |
16:14.33 | Samot | So you can call the proper call recording information over. |
16:14.41 | Samot | Oh, I'm sorry. None of this is helpful? |
16:14.44 | Samot | I'll stop then. |
16:15.12 | seanbright | i don't see how any of your repsonses in regards to zamba's question could be deemed helpful |
16:15.43 | Samot | Well then I'll just stop. |
16:15.47 | seanbright | sounds good |
16:16.15 | Samot | I guess the only real help I can give is to just hand over my dialplan and scripts. |
16:16.31 | Samot | So a PoC can be made from something already proved. |
16:16.37 | Samot | Totally makes sense. |
16:16.59 | zamba | Samot: why are you even active in an open source community? |
16:17.12 | seanbright | sorry - this is "just stop[ping]?" |
16:17.28 | Samot | zamba: Don't. |
16:18.04 | sibiria | asterisk may be open source, but the products people build around/next to it doesn't have to be part of that |
16:18.20 | seanbright | correct. samot's code is his code. |
16:18.30 | zamba | sibiria: yeah, i totally understand that.. |
16:18.44 | seanbright | how about we all just move on? |
16:18.49 | zamba | yeah, i guess |
16:19.13 | zamba | i'll make a stab on this with sibiria's help.. and see if i'm able to get any further |
16:25.57 | *** join/#asterisk riddlebox (~riddlebox@2600:6c42:7900:f1e1::1b8b) |
16:27.00 | zamba | hm: [2021-04-26 18:26:32] NOTICE[19175][C-00000013]: app_stack.c:1082 gosub_run: SIP/marius-00000018 Abnormal 'Gosub(vikar_callback,s,1)' exit. Popping routine return locations. |
16:27.11 | zamba | i tried adding a Return() to the callback, but to no avail |
16:34.59 | zamba | if i just have Return in it, then it works fine.. but if i have anything else before it, then it fails with that error message |
16:35.58 | zamba | Verbose() works |
16:36.34 | zamba | but doing a Wait(2) returns an error |
16:38.45 | Samot | hrm. |
16:39.42 | zamba | running a pretty old version of asterisk.. trying to upgrade now |
16:40.04 | zamba | (version 13.18.3) |
16:43.12 | *** join/#asterisk lbazan (~LoKoMurdo@fedora/LoKoMurdoK) |
16:54.47 | zamba | sibiria: i'm really stuck now.. i'm not able to trigger that callback context |
16:55.17 | zamba | sibiria: if i do Verbose() then i'm able to print out something to the console.. but if i do anything else, even Wait() then i'm getting that error above |
16:56.01 | Samot | OK. |
16:56.09 | Samot | So this is because what was provided is incorrect. |
16:56.26 | zamba | what was wrong about it? |
16:56.38 | Samot | 1. The channel is gone |
16:56.46 | Samot | 2. You can run Wait() on an non-existing channel |
16:56.50 | Samot | can't* |
16:57.01 | Samot | 3. You can't Dial() from a non-existing channel. |
16:57.22 | Samot | 4. Playback() won't work because it will only execute after the Dial() is completed. So it never plays during the call. |
16:57.31 | Samot | 5. None of this will accept actual input from the caller. |
16:57.33 | Samot | 5. None of this will accept actual input from the callee. |
16:58.04 | zamba | ok.. so what do i do, then? |
16:58.59 | Samot | Well you need to be using local channels to initiate the calls to the destinations. |
16:59.16 | Samot | So it can flip the channel to accept DTMF input from the callee. |
16:59.36 | Samot | None of this should be done from the hangup handler of the caller making the recording. |
17:00.05 | Samot | You need to trigger a proper way to roll through the numbers that need to be called. |
17:01.15 | zamba | and again: how? :) |
17:01.26 | zamba | you're saying a lot of whats, but no hows |
17:02.07 | zamba | i realize WHAT i want to do.. that is what i started out describing.. i know what i want to do, but not *how* i can do this |
17:02.07 | Samot | You will need to make a System() or some other execution call to trigger this. |
17:02.43 | Samot | You can then send AMI Originate commands to process the outbound call. |
17:02.59 | Samot | So it can Dial() the number out the trunk... |
17:03.09 | zamba | aha, ok |
17:03.19 | Samot | I said all this earlier. |
17:03.29 | zamba | so basically a system call that will then trigger the ami directly to make the call? |
17:03.36 | Samot | Right. |
17:03.59 | Samot | So that when the call is answered it can be sent to the context that does the recording playback and accepts DTMF. |
17:04.27 | Samot | Like I said earlier, I use AMD to determine human or machine and handle it accordingly. |
17:07.00 | *** join/#asterisk Nglpx1 (6d351148@109.53.17.72) |
17:08.04 | *** join/#asterisk TriJetScud (~TriJetScu@2602:fca7:1:6:5733:d000:1111:1111) |
17:10.39 | Nglpx1 | Hi, i was configuring asterisk, when i realized by testing making an outgoing call, that only american numbers go out. Â I remember that in version 16, during the configuration it asked me to set the telephone prefix by default. I have version 13.8, when I actually try to make a call to Italy (+39) the client says nothing, while the softphone says |
17:10.39 | Nglpx1 | "Temporality Unavaible 480" while if I call in the US it goes. how do i change this? |
17:14.04 | Samot | Nglpx1: Did you setup a distro release of Asterisk? |
17:14.34 | Samot | Nglpx1: Who is the provider you signed up with? |
17:17.14 | Nglpx1 | Is use Gotrunk provider, when i used the asterisk 16 I could call to all countries, it's not a provider problem in my opinion |
17:18.18 | Samot | What version are you using now? |
17:18.41 | Nglpx1 | i don't use an asterisk distro i use a cloud vps with ububtu server 16.04 because i noticed that it reacts well |
17:18.42 | Samot | Oh 13.8... |
17:18.42 | Nglpx1 | i use asterisk 16.8 |
17:18.58 | Nglpx1 | 13.8*** |
17:18.59 | Nglpx1 | sorry |
17:19.05 | Samot | Nglpx1: How did you install Asterisk? |
17:19.11 | Samot | Nglpx1: apt install asterisk? |
17:19.55 | Nglpx1 | No, wget > ./configure > menuselect > make > make install > make samples > make config |
17:20.24 | Samot | OK, so then a 480 means it was busy/rejected. |
17:20.46 | Samot | So far every error has been a rejecting from the other side. |
17:21.06 | Nglpx1 | asterisk work, but i think i need to change something in the configurations to allow me to forward call 39 to the provider ( |
17:21.07 | Samot | Or at least we think it's the other side. You still haven't shown any call debugs for us to actually see what is going on. |
17:21.15 | Samot | I gave you that. |
17:21.32 | Samot | You pasted the stuff in extensions.conf, I showed you have to update that. |
17:21.46 | Samot | But if calls to the US work but no where else, then something else is wrong. |
17:22.11 | Nglpx1 | the problem is that there is no error in debugging. |
17:23.26 | Samot | 480 is the error |
17:23.30 | Samot | 403 is the error |
17:23.43 | Samot | We want to see how the call is being processed in Asterisk and sent to the provider. |
17:23.59 | Samot | Because otherwise you need to call your provider and find out why they are rejecting your calls. |
17:25.39 | Nglpx1 | Ok pls wait |
17:33.14 | Nglpx1 | https://pastebin.com/mggyhV0r |
17:35.36 | Samot | Well the "181 Call is being forwarded" isn't a good sign. |
17:37.00 | Samot | Nglpx1: Are you calling from 201? |
17:37.29 | sibiria | zamba: i'm sure it triggers just fine, but something else in it is going wrong. maybe it cannot find the file (or even move it to asterisk's sounds directory) |
17:38.02 | sibiria | zamba: if you enable verbose logging for the console, what does asterisk say? |
17:39.23 | sibiria | are you sure the channel uses gsm, just so that you're not running into a transcoding failure or similar? |
17:40.04 | *** join/#asterisk Nglpx1 (6d351148@109.53.17.72) |
17:40.07 | Samot | How does that address Wait() causing the issue? |
17:41.49 | Nglpx1 | sorry i lost the connection and therefore the previous answers. did you see the log? |
17:42.05 | Samot | Nglpx1: You're calling from 201? |
17:42.28 | Nglpx1 | Yes |
17:43.43 | zamba | Samot: there's no Dial command throught AMI, is it? |
17:43.52 | Samot | OK well these are all 480 replies that Asterisk is trying to send to 109.53.x.x IP |
17:43.56 | Samot | What IP is that? |
17:44.13 | Samot | zamba: No, it's called Originate. Like I've said before. |
17:45.36 | Nglpx1 | I believe it is the provider, if not me. sorry for my ignorance, but I believe that if asterisk sends the request it sends it to the provider or to the soft |
17:46.02 | Samot | Nglpx1: Well I'm going to guess this is Asterisk sending it to the softphone and it keeps retransmitting. |
17:46.08 | Samot | Which means it's not getting replies. |
17:46.18 | Samot | But this isn't a full call. The original INVITE is missing. |
17:46.23 | Samot | This is just a bunch of replies. |
17:47.02 | Samot | And really, it's the same reply to an INVITE over and over again. |
17:47.10 | Samot | Show a call that works. |
17:47.19 | Samot | If you can call the US, show a call to the US that works. |
17:47.55 | Samot | Asterisk PBX certified/13.8-cert1 <-- Also not sure why you need a certified version. |
17:48.37 | *** join/#asterisk Nglpx1 (6d351148@109.53.17.72) |
17:49.54 | Nglpx1 | among the confusion of the work I have not found the NOT certified version. |
17:49.54 | Nglpx1 | now i send you a debug call to the united states |
17:57.01 | zamba | argh.. and now i can't get the manager authentication working |
17:57.10 | zamba | Response: Error |
17:57.12 | zamba | Message: Authentication failed |
17:57.44 | zamba | manager show users lists the admin user |
17:57.53 | zamba | and manager show user admin also lists the admin user |
17:57.58 | zamba | and that the password is set |
17:58.22 | zamba | it has both read and write perm set to: system,call,log,verbose,command,agent,user |
17:58.28 | Samot | You have originate listed as an allowed service? |
17:58.38 | Samot | No. You don't. Add that |
17:58.46 | zamba | now i just attempted to login |
17:59.03 | zamba | https://wiki.asterisk.org/wiki/display/AST/AMI+Examples |
17:59.07 | zamba | like the first example there |
18:00.00 | Samot | Did you just create the account? |
18:00.11 | zamba | the manager account? |
18:00.16 | Samot | Yes |
18:00.24 | zamba | nope, it has been here a while |
18:00.34 | zamba | i believe i used it for something else some years ago :) |
18:02.28 | Samot | Change the password, reload manager and try again |
18:03.48 | zamba | nope, same.. authentication failed |
18:04.30 | zamba | [2021-04-26 20:03:36] NOTICE[10085]: manager.c:3418 authenticate: 127.0.0.1 failed to authenticate as 'admin' |
18:04.32 | zamba | that in console |
18:04.44 | *** join/#asterisk thansen (~thansen@192.74.130.86) |
18:05.02 | Samot | Show how you are sending the login |
18:05.19 | zamba | telnet to the port.. and then just paste in the following: |
18:05.42 | zamba | it's basically just the first example, but with username and secret changed |
18:05.51 | zamba | and then two newlines |
18:07.36 | zamba | https://dpaste.org/XpdA |
18:08.22 | sibiria | zamba: use the hangup handler to invoke an AGI script instead, that will work |
18:08.50 | zamba | sibiria: can the AGI script perform the actual dialup? |
18:08.56 | sibiria | yes |
18:09.20 | sibiria | as mentioned before you can also do it with call files if you built asterisk with pbx_spool |
18:09.44 | sibiria | AGI/spool are generally a bit simpler methods than AMI, but usability between these differ |
18:10.22 | seanbright | Secret |
18:10.28 | seanbright | zamba: Secret, not Password |
18:10.55 | Samot | Yup. That would be an issue. |
18:10.58 | zamba | ah! |
18:11.12 | zamba | where did i get Password from...? |
18:11.23 | seanbright | let me check |
18:11.35 | zamba | but yeah, now it works :) |
18:12.38 | Samot | zamba: What was the old version of Asterisk you pulled this from? |
18:13.15 | zamba | 13.18.3 |
18:15.01 | zamba | ok, i got the originate to work |
18:15.10 | zamba | but a bit rudimentary for now |
18:18.52 | *** join/#asterisk rpifan (~rpifan@p200300d2672b5d00bf3d03edccbc8d97.dip0.t-ipconnect.de) |
18:23.41 | *** join/#asterisk Nglpx1 (6d3503e2@109.53.3.226) |
18:23.56 | Nglpx1 | :Samot |
18:24.12 | Nglpx1 | @Samot |
18:24.23 | Nglpx1 | i can wrote you in private? |
18:26.52 | *** join/#asterisk thansen (~thansen@192.74.130.86) |
18:30.30 | *** join/#asterisk Nglpx1 (6d3503e2@109.53.3.226) |
18:30.41 | Nglpx1 | Samot |
18:31.07 | Nglpx1 | Are you here? |
18:31.14 | sibiria | zamba: so here is an actually working prototype: https://dpaste.org/hZ1u |
18:31.25 | sibiria | seems SHELL() absolutely wants to be collected during invoking, or it croaks |
18:31.57 | sibiria | (don't forget to make the agi script executable) |
18:32.12 | Nglpx1 | Sibiria |
18:32.17 | sibiria | Nglpx1: |
18:32.36 | Nglpx1 | Who helped me 10 m ago? |
18:32.51 | Nglpx1 | samot? |
18:33.04 | sibiria | it was Samot |
18:35.46 | Samot | Yes? |
18:36.06 | Nglpx1 | I can write you in private? |
18:36.37 | Samot | No. |
18:37.13 | Samot | sibiria: How does DTMF get collected? |
18:38.38 | sibiria | prototype |
18:38.56 | sibiria | call, say blah blah, hang up |
18:39.02 | Nglpx1 | Samot Ok, in this Moment i canât give you the debug of us calling becouse i think someone has penetred my server. The log is   full of login attempts and the call now gives error 404 |
18:39.47 | Samot | Nglpx1: I told you almost 4 hours ago to secure your server. Did you do anything? |
18:40.37 | Samot | sibiria: So it's a prototype that doesn't do the actual thing it should? |
18:41.06 | sibiria | it echoes a call recording. take it from there, maestro |
18:41.18 | sibiria | and more than anything, it's a demo of how to use a hangup handler and call files |
18:42.58 | Nglpx1 | Samot I am not an expert on this I have not been able to do it. I'm uploading a snapshot. what do you advise me to do? should i change vps? the accesses of the sip.conf |
18:43.24 | Samot | Nglpx1: What do you need to use this for? |
18:44.05 | Nglpx1 | Samot :asterisk? |
18:44.18 | Samot | Yes. |
18:44.35 | Nglpx1 | Make a outbound call |
18:44.40 | Nglpx1 | in italy |
18:45.03 | Samot | https://www.freepbx.org/downloads/ |
18:45.16 | Samot | Just go get the FreePBX ISO, use that. |
18:45.22 | Samot | It's all GUI based and has a firewall. |
18:45.32 | Samot | Because, you need something that will do the work for you. |
18:46.06 | Nglpx1 | I canât use that, becouse i need to use a custom configurations from my provider |
18:46.33 | Samot | What custom configuration? |
18:46.59 | Nglpx1 | Samot github.com/Gotrunk/asterisk-config |
18:47.28 | Samot | Bud. |
18:47.40 | Samot | FreePBX uses a GUI for you to do all that. |
18:47.45 | Nglpx1 | css.conf |
18:47.45 | Nglpx1 | dsp.conf |
18:47.46 | Nglpx1 | 5 years ago |
18:47.46 | Nglpx1 | dsp.conf |
18:47.47 | Nglpx1 | extensions.conf |
18:47.47 | Nglpx1 | 5 years ago |
18:47.48 | Nglpx1 | extensions.conf |
18:47.48 | Nglpx1 | features.conf |
18:47.49 | Nglpx1 | 5 years ago |
18:47.49 | Nglpx1 | features.conf |
18:47.50 | Samot | STOP |
18:47.50 | Nglpx1 | indications.conf |
18:47.50 | Nglpx1 | 5 years ago |
18:47.51 | Nglpx1 | indications.conf |
18:47.51 | Nglpx1 | manager.conf |
18:47.52 | Nglpx1 | 5 years ago |
18:47.52 | Nglpx1 | manager.conf |
18:47.53 | Nglpx1 | modules.conf |
18:47.53 | Nglpx1 | 5 years ago |
18:47.54 | Samot | JESUS. |
18:48.29 | Samot | You don't need Asterisk for this. |
18:48.37 | Nglpx1 | In the gui i can sostitute this file? |
18:48.37 | Samot | You can create the extensions in FreePBX. |
18:48.43 | Samot | You can create the outbound routes. |
18:48.53 | Samot | It does all the work of creating dialplan and conf files. |
18:48.58 | Samot | And it has a firewall. |
18:49.02 | Nglpx1 | I can edit my Custom sip.conf? |
18:49.11 | Samot | Yes. |
18:49.20 | Samot | There's no custom. |
18:49.24 | Samot | They gave an example. |
18:49.29 | Samot | A basic config to make it work. |
18:49.53 | Samot | There's nothing special in those configs. They are just examples. |
18:50.37 | Nglpx1 | in the version I install the files are totally different. |
18:50.56 | Nglpx1 | I checked it out |
18:53.48 | Samot | Well i am giving you a solution to the problem of you not knowing how to do things. |
18:54.35 | Samot | Because you not knowing how to secure a VPS is not an Asterisk problem. And you need to secure the box. |
18:55.03 | Samot | Im not even 100% this box is clean anymore either. Depending on how long it has been up. |
18:56.59 | Samot | Nglpx1: https://gotrunk.com/docs/ippbxconfiguration/freepbx/ |
19:06.18 | zamba | sibiria: ok, i've gotten that working now :) |
19:09.56 | zamba | sibiria: but now you use AGI just to create the call files, right? |
19:10.50 | sibiria | zamba: yes, just as a way of triggering the application instead of having something outside asterisk monitoring the recordings directory |
19:11.06 | *** join/#asterisk Jesterboxboy (~Thunderbi@84-115-150-8.cable.dynamic.surfer.at) |
19:12.55 | zamba | sibiria: and i can perform several tasks inside here? like playback the audio.. then ask for DTMFs and then return the result back to for instance the AGI script? |
19:13.11 | zamba | i guess i could all another AGI script in the call file.. or..? :) |
19:13.15 | zamba | i'm going a bit inception here |
19:14.12 | sibiria | you can run AGI() as an application of the call file, but you can also point the call file to a dial plan context |
19:14.36 | sibiria | (then asterisk will jump to there if the call is bridged) |
19:16.06 | zamba | ah, that sounds better, yes.. kind of like i did with the originate command through AMI |
19:16.39 | sibiria | through AGI you can do pretty much the same things you can with the available applications/functions directly in the dial plan |
19:16.54 | zamba | what i really wanted to do was to do all the logic through python |
19:17.14 | sibiria | what's not available as a dedicated AGI call you can do with the "exec" method |
19:17.35 | sibiria | yeah, sure |
19:17.45 | sibiria | perl and lua are a bit more common for that, i'd say |
19:17.55 | sibiria | mostly because of python being slow as hell both for starting up and for executing |
19:18.21 | sibiria | (doesn't scale vertically very well, if the platform is to see much load) |
19:19.10 | sibiria | FastAGI can bridge that problem if absolutely neccessary |
19:19.17 | zamba | nah, i don't think it's needed |
19:19.17 | sibiria | but comes with its own share of complications |
19:19.56 | zamba | but.. let's say i wanted to dial through AGI..? how is that then done? and if i then wanted to get the DTMF status from that call? for instance if a user actually enters 1? |
19:21.18 | sibiria | AGI doesn't have a dial method, so you'd invoke it through exec |
19:22.45 | zamba | i guess what i really need to decide is what is going to determine if we need to keep calling someone |
19:22.57 | zamba | what is going to be the "master" process here |
19:23.26 | zamba | i get a bit of an house of cards feeling with dialplan calling hangup calling agi script which then creates a call file |
19:23.30 | zamba | and then rince and repeat :) |
19:24.16 | sibiria | there are advanced methods for these things, like ring groups as Samot suggested |
19:24.20 | zamba | so the ideal thing would be to have some kind of coordinator sitting outside of asterisk making these calls and then getting the feedback from each of the calls |
19:24.24 | sibiria | but you can also specify multiple recipients when dialing |
19:24.35 | zamba | sibiria: no, it's very important that i call them sequentially |
19:24.52 | zamba | sibiria: so that only one person at a time is able to respond if they can take the shift |
19:25.04 | Samot | Oh wait, this is so they can verbally respond? |
19:25.12 | Samot | You want them to answer? |
19:25.16 | zamba | no, DTMF |
19:25.32 | Samot | OK so then you want to hunt them. |
19:25.42 | zamba | with respond i meant through DTMF.. sorry if that was ambiguous |
19:25.51 | Samot | And only hunt if the current callee denies the call/request |
19:25.59 | zamba | yeah, exactly |
19:26.02 | zamba | and then move next in line |
19:26.16 | Samot | That's not how it was originally explained. |
19:26.23 | Samot | So yeah, this does change it a bit. |
19:26.34 | sibiria | iirc when you dial in parallel, asterisk will hang up on all other channels but the first responder |
19:26.43 | sibiria | but it still poses some problem to dial in parallel, of course |
19:26.47 | Samot | This isn't a parallel. |
19:26.55 | Samot | This is going to be a hunt. |
19:27.05 | zamba | i believe that's what i wrote at 15:24z |
19:27.10 | Samot | 1 call, 1 response, if caller accepts call no others. |
19:27.22 | zamba | "if the person on the other side is available and can come to work then they should press 1 or something.. and then the personell hunt should stop" |
19:27.58 | Samot | It broke up in the another message. |
19:28.03 | zamba | ah, yeah, true |
19:28.15 | Samot | So pretty close to what I do still. |
19:28.16 | sibiria | dialing sequentially can be preferrable for obvious reasons, but do make a mental note of how dial() operates when you provide it multiple recipients |
19:28.19 | Samot | Just one at a time. |
19:28.45 | zamba | yeah.. |
19:29.22 | zamba | so i'm just wondering where and how i should coordinate the calls.. what should keep track of how many we've called and if we have gotten the positive response |
19:29.43 | sibiria | dialing loop |
19:30.00 | zamba | sibiria: yeah, but where? in the AGI script? |
19:30.03 | sibiria | but ironically dialing in parallel solves the same problem, just at the expense of having multiple outbound lines ringing at the same time :P |
19:30.34 | sibiria | again, dial() with multiple resources specifies will only bridge the first responder. the rest will be hung up |
19:30.48 | sibiria | only one single call will be connected |
19:30.58 | sibiria | this can be a useful tool for some scenarios |
19:31.04 | zamba | sibiria: hm.. i'm not sure it does.. because then all would be dialed at the same time.. but if one of them answers but THEN declines to come to work, then all, except the previously person who declined), would be dialed in parallel again |
19:31.09 | zamba | it would be nightmare |
19:31.23 | zamba | repeat that for 40+ numbers |
19:31.50 | sibiria | if you plan on dialing each recipient multiple times, with some delay between, then parallel will obviously not work |
19:32.07 | zamba | i don't plan on dialing each recipient multiple times.. just once |
19:32.27 | sibiria | but must they be dialed one after the other? |
19:32.28 | zamba | if after dialing everyone on the list and no one has responded that they can come to work, then manual intervention has to be used |
19:32.32 | zamba | sibiria: yes |
19:32.36 | sibiria | is it a problem if someone gets a call but does not pick up, or cannot pick up? |
19:32.45 | zamba | sibiria: then move on to the next in the list |
19:33.05 | zamba | that's why i want to use AMD as well.. to detect if it goes to voicemail.. if it does, then just hang up |
19:33.10 | zamba | and move on to the next |
19:33.27 | sibiria | yes that's one scenario where parallel dialing will not work |
19:33.50 | sibiria | other than that it should for the recipient be no different than geting the call in the sequential scenario and just not picking up |
19:33.58 | sibiria | the recipient doesn't know which is happening anyway |
19:34.34 | sibiria | either way, you can loop over a list in the dial plan. it's a bit messy to do programmatic work in there, but it's doable |
19:34.47 | sibiria | an AGI script has the benefit of more lenient access to e.g. database functionality etc. |
19:34.55 | zamba | sibiria: well, if the phone starts ringing, then stops.. and then does that for 40+ calls, then it would be a bit irritating... :) |
19:35.24 | sibiria | the recipient who doesn't pick up still gets only one call that they don't pick up :) |
19:35.30 | sibiria | no matter if 39 other people are called at the same time |
19:35.54 | sibiria | but if they must confirm within the call, then yes, you need to do this sequentially |
19:36.05 | zamba | hm.. i'm not sure i follow.. let's say we dial in parallel.. 40 different people.. then in theory all 40 phones should start ringing at roughly the same time, right? |
19:36.29 | Samot | That's not what you want. |
19:36.31 | Samot | At all. |
19:36.34 | sibiria | yes, but again: asterisk will only bridge the first person who picks up. all the others will be hung up. there will never be *two* of these calls bridged |
19:36.58 | Samot | You want to call a list of 40 numbers one at a time and only continue on certain conditions. |
19:37.04 | zamba | then callee #14 picks up.. the rest will then be hung up, right? the message is played back to #14 and that person then declines to come to work.. then the process will be repeated, but now only with 39 callees.. |
19:37.17 | Samot | Well you have to track that |
19:37.20 | zamba | it. would. be. a nightmare :) |
19:37.22 | Samot | And I would be pissed. |
19:37.27 | Samot | As a person on that list |
19:37.27 | zamba | yeah, exactly |
19:37.31 | zamba | that's what i meant |
19:37.33 | sibiria | as said, when dialing in parallel you only issue ONE SINGLE DIAL() |
19:37.35 | zamba | so no, parallel won't work |
19:37.36 | Samot | So do this the way it should be done. |
19:37.59 | zamba | sibiria: yup, i understand how it's done, but for this it won't work |
19:38.07 | sibiria | if there's a condition that must be met within an answered call, then parallel dialing is not applicable |
19:38.15 | zamba | yup, agreed :) |
19:38.21 | Samot | Pull a list of numbers to call. Cycle through it, Dial() each and continue if voicemail or rejected. |
19:38.47 | zamba | Samot: but where do you suggest to actually do that and keep track of it? in an AGI script? |
19:39.03 | sibiria | i'd do it in an AGI script |
19:39.16 | Samot | You can call an AGI script to check things.. |
19:39.24 | Samot | And submit things but you still need to do those things. |
19:39.35 | zamba | do which things? |
19:39.43 | Samot | Call X number |
19:39.46 | Samot | Track X number |
19:40.05 | sibiria | e.g. pull applicable recipients from a database; who's on call this day? maybe not everyone |
19:40.08 | sibiria | etc. |
19:40.22 | zamba | sibiria: you mean a single AGI script called by the hangup handler? would that script be running for the entirety of the process of finding an employee? |
19:40.39 | sibiria | that is one way of doing it, yes |
19:40.49 | zamba | yeah, but i'm trying to determine the best way of doing it :) |
19:40.58 | sibiria | you may also use the hangup handler to simply signal the task for something outside to pick up on |
19:41.21 | sibiria | but effectively there is nothing preventing you from letting an AGI script run for 45 minutes or whatever |
19:41.42 | zamba | sibiria: well, in this case as long as it takes for the number of numbers in the list to be emptied |
19:41.49 | zamba | "number of numbers".. hehe |
19:41.51 | Samot | Why? |
19:41.53 | sibiria | yes it works just fine |
19:41.58 | Samot | Holy hell why? |
19:41.58 | zamba | Samot: why what? |
19:42.06 | Samot | Just pull the numbers and loop them. |
19:42.13 | zamba | Samot: that's why we're having this "discussion".. i'm trying to figure out how to best do this |
19:42.28 | zamba | Samot: yeah, but *where*? |
19:42.37 | zamba | Samot: in the AGI? inside the dialplan? AMI? |
19:42.57 | sibiria | you can dial from within an AGI script using the EXEC method of AGI |
19:43.00 | zamba | something needs to control the iteration of this.. and keep track of who's been called and so on |
19:43.13 | Samot | Uhm. |
19:43.15 | sibiria | you'll get results of the dial as channel variables |
19:43.17 | Samot | Pull list of numbers.. |
19:43.20 | Samot | LOOP numbers |
19:43.28 | zamba | Samot: you're still not saying *where* to do this |
19:43.30 | Samot | If someone ACCEPTs, break loop. done. |
19:43.35 | zamba | i fully understand the algorithm |
19:43.40 | Samot | I'd just do it in the dialplan. |
19:43.43 | zamba | the question is not how, but where |
19:43.59 | zamba | yeah, i was fearing you'd say that :) |
19:44.03 | Samot | Why? |
19:44.07 | Samot | It's not that hard. |
19:44.25 | *** join/#asterisk AsteriskRoss (~AsteriskR@37.157.48.2) |
19:44.43 | zamba | https://community.asterisk.org/t/asterisk-for-while-loop-to-read-lines-and-add-them-to-dial-plan/67505 |
19:44.50 | zamba | because this doesn't look readable OR debuggable |
19:44.57 | sibiria | zamba: if you're more comfortable working in python, then just do it in a python AGI script |
19:45.01 | zamba | sibiria: yeah |
19:45.18 | sibiria | pyst is the common python AGI module |
19:45.18 | Samot | And? |
19:45.28 | Samot | Then why even ask? |
19:45.40 | Samot | Why ask if you should use dialplan if you don't want to use it? |
19:46.00 | Samot | And what do you need to debug? |
19:46.43 | Samot | You're just returning a delimited list of numbers back into the dialplan. I guess you could loop them all in the AGI and dial them each and keep jumping in and out of the AGI. |
19:47.09 | sibiria | my advice: get comfortable with using an AGI script to issue a single Dial and collecting its outcome etc. |
19:47.32 | sibiria | check out the pyst2 python module and the AGI reference on wiki.asterisk.org |
19:47.42 | zamba | sibiria: ok, thanks! :) |
19:48.07 | sibiria | (or is it pyst3 by now.. i cannot recall) |
19:48.28 | Samot | zamba: For the record, that forum post is in no why a While loop |
19:48.57 | Samot | There's actual while loop functions. |
19:52.30 | *** join/#asterisk post-factum (~post-fact@vulcan.natalenko.name) |
19:53.08 | zamba | pyst seems a bit broken |
19:54.44 | zamba | both pyst2 and pyst3 are very old |
19:55.57 | zamba | pyst2 works.. sweet |
19:59.42 | sibiria | yeah they're old, though they do work. i use it in one or two (E)AGI things written in python instead of perl which is my preference |
20:28.27 | zamba | but there's no authentication when using agi through python? |
20:28.53 | zamba | or is the agi thingy really just a wrapper around having to type out the commands directly? is it basically just stdout manipulation? |
20:49.03 | zamba | sibiria: hm.. i attempted to do agi.exec_command("Dial", "SIP/marius,20") |
20:49.14 | zamba | and also .exec_command("Dial SIP/marius,20") |
20:49.25 | zamba | both returned status code 200 but result=-1 |
20:52.45 | *** join/#asterisk Nglpx1 (05abd30e@5.171.211.14) |
20:54.12 | Nglpx1 | I have installed freebpx how i can start? |
20:54.46 | zamba | Nglpx1: start with what? |
20:54.50 | zamba | Nglpx1: also check #freepbx |
20:55.09 | Nglpx1 | For asterisk |
20:56.47 | zamba | Nglpx1: i think you have to be a bit more specific in your question than that |
20:57.59 | Nglpx1 | I have installed freebpx from a option in my vps cloud. âInstall freebpxâ and many minutes later.. âgo to your freebpx server url âhttp://yourserveripâ when i acces to my ip address i have the welcome test page of apache. âThis page is used to test the proper operation of the apache httpâ |
21:02.51 | zamba | then you're not accessing the freepbx |
21:03.31 | *** join/#asterisk ttys000 (~ttys000@50.92.213.208) |
21:03.43 | Nglpx1 | So how do you do it? |
21:04.30 | Nglpx1 | Or how i can call in italy with asterisk, becouse he only makes me call in america |
21:05.00 | Samot | Nglpx1: Have you 100% checked with your provider on why this doesn't work? |
21:05.06 | Samot | Nglpx1: Because it seems odd. |
21:05.12 | Nglpx1 | 100% checked |
21:05.20 | Nglpx1 | Â i have alredy tested |
21:05.43 | Nglpx1 | becouse in the 16 version, i have been maked a internatinal call |
21:05.55 | Nglpx1 | International |
21:06.04 | Samot | OK there's nothing wrong in 13 that can't make this call. |
21:06.11 | Samot | It's all based on the dialplan you are using. |
21:07.30 | Nglpx1 | so why make a mistake, I just can't understand |
21:07.56 | Nglpx1 | looks like a nightmare. |
21:08.22 | Samot | Pastebin the dialplan you are using to make this call. |
21:08.43 | Nglpx1 | Dialogando? |
21:08.51 | Nglpx1 | Dial plan **?? |
21:08.58 | zamba | Samot: are you familiar with the exec_command thingy from AGI? |
21:09.07 | Nglpx1 | Not really |
21:09.18 | zamba | and why this doesn't work: .exec_command("DIAL SIP/marius").. i have also tried .exec_command("DIAL", "SIP/marius") |
21:09.27 | Samot | Nglpx1: Pastebin the dialplan you are using. |
21:09.44 | zamba | i can see from the agi debug that it's showing.. but it's never performing any dial operation |
21:10.03 | Nglpx1 | Samot how i can see this dialplain? |
21:10.15 | zamba | Nglpx1: dialplan show |
21:10.21 | Nglpx1 | Thanks |
21:10.43 | zamba | Nglpx1: you may have to limit the output to just the dialplan you're interested in |
21:10.52 | zamba | or rather the context, or whatever it's called |
21:15.05 | Samot | Or you know just open the extensions.conf and copy the dialplan. |
21:19.08 | sibiria | zamba: no the parameters are separate. exec( 'Dial', 'PJSIP/somewhere,20' ) |
21:19.29 | sibiria | (or SIP/blah if you still use chan_sip) |
21:19.54 | *** join/#asterisk JonathanD (~JonathanD@freenode/staff/jonathand) |
21:22.55 | zamba | sibiria: yeah, that's why i tried first.. didn't take |
21:25.15 | sibiria | remember that if you just dial like that, what asterisk does is bridge the current channel you dial from |
21:25.46 | *** join/#asterisk Nglpx1 (6d350b30@109.53.11.48) |
21:25.55 | Nglpx1 | Samot wait now freebpx has installed correctly, if I go to my ip in chrome it opens the login of the centOS web console from here, do you know how to open freebpx? |
21:26.29 | Samot | It should redirect you to the admin page. |
21:26.52 | sibiria | if you want to try something more conclusive, you can feed Dial() options for jumping into a certain context on answer - for example one which plays a certain sound file |
21:27.14 | Samot | http://yourip/admin/config.php |
21:28.10 | Nglpx1 | Thanks |
21:28.47 | Nglpx1 | âNot foundâ |
21:28.59 | zamba | sibiria: ah, that could be it.. but how am i supposed to make the outgoing calls through agi then? :) |
21:29.01 | Nglpx1 | http://prnt.sc/123vnxf This is login centOS |
21:29.37 | Samot | What VPS is this that had a FreePBX install? |
21:30.35 | Nglpx1 | http://prnt.sc/123vt1z |
21:30.44 | Samot | Because the FreePBX Distro is its own. |
21:31.01 | Nglpx1 | it's called hostwind |
21:31.14 | Samot | Why are you using 9090? |
21:31.38 | Nglpx1 | I donât know the install is automatically |
21:32.23 | Nglpx1 | In the ssh terminal âweb console: https://myip:9090 |
21:32.48 | Samot | I have no idea why there is a port for 9090 being used |
21:32.56 | Samot | The FreePBX distro doesn't use that |
21:33.16 | Nglpx1 | Mm |
21:33.39 | Nglpx1 | Is possibile download freebpx image and mount by ssh? |
21:34.28 | zamba | sibiria: i need to have it attached to a channel.. but that kind of like a catch-22 if i'm not able to create channels from outside asterisk |
21:34.46 | zamba | do i end up having to use AMI? |
21:38.41 | sibiria | zamba: no, you can dial directly from AGI, and you can do so both on a hung-up channel or a bridged channel |
21:39.12 | zamba | sibiria: so how? :) |
21:39.43 | zamba | agi.exec_command("DIAL", "SIP/marius,20") |
21:40.13 | zamba | <SIP/marius-0000003c>AGI Rx << EXEC DIAL SIP/marius,20 |
21:40.15 | zamba | <SIP/marius-0000003c>AGI Tx >> 200 result=-1 |
21:40.29 | sibiria | check the channel variables for the call |
21:40.36 | sibiria | the disposition etc. |
21:40.46 | sibiria | and the SIP response |
21:40.54 | sibiria | (is marius busy?) |
21:41.06 | zamba | no |
21:41.11 | zamba | agi_channel: SIP/marius-0000003c |
21:42.14 | zamba | i believe it's the hung up channel i'm getting the agi variables for |
21:42.21 | zamba | since this is a hangup handler |
21:42.43 | zamba | so that should be called after the call was hung up |
21:42.44 | file | Dial() doesn't allow itself to be called from a channel that has been hung up. |
21:43.11 | zamba | so how do i make a NEW call from an agi script? |
21:43.43 | sibiria | like suggested before, call file with context |
21:43.48 | file | Originate dialplan application, AMI, or call file |
21:44.02 | zamba | but.. argh.. :) |
21:44.30 | zamba | then i can't do what you've been saying i can.. have all logic in the original agi script |
21:44.35 | zamba | then i need to redesign everything here |
21:45.34 | zamba | can i call AMI from a hangup handler script? and from there read in DTMF? |
21:45.40 | Samot | This is what I said hours ago. |
21:45.50 | zamba | Samot: yeah, you have been saying that |
21:45.52 | Samot | You cannot do this from a hang up |
21:46.00 | Samot | The channel no longer exists. |
21:46.19 | file | that is: you can't read in DTMF from the channel that is in the hangup handler |
21:46.20 | sibiria | you're doing it from a script after hangup. the original channel shouldn't be maintained because then the caller has to hang around for 40+ calls to reach someone |
21:46.38 | sibiria | when you Originate() a call you can pull the results from it afterwards |
21:47.21 | zamba | but we've discussed this for the better part of the afternoon.. you know my requirements by now.. could you please just help me get started with the right building blocks.. if AGI can't do it, then please say so :) |
21:47.41 | sibiria | you can originate a call from AGI, on a hung-up channel |
21:48.06 | zamba | can i interact with that new call? |
21:48.15 | zamba | through agi? |
21:48.45 | sibiria | you can interact with its status, other than that you need to send the call to a context which manages events in the call |
21:49.03 | zamba | sibiria: exactly. and this i need to get BACK to the original agi script |
21:49.39 | zamba | so then AGI is probably not the right way to go about this? |
21:50.09 | zamba | the main script needs to know if the user inside the new call answered yes (pressed the correct DTMF) |
21:50.28 | zamba | with the main script i mean the AGI script that was called after the hangup of the original call |
21:50.53 | sibiria | you can set channel variables in your dial plan, and read them from AGI |
21:51.28 | sibiria | originate, too, sets its call disposition as a channel variable |
21:51.45 | zamba | but will that help me? |
21:51.52 | zamba | i mean.. i'm nearly in the complete dark here |
21:52.57 | zamba | asterisk has yet again been able to give me a complete headache.. several years since the last time |
21:53.44 | sibiria | if you originate a call, and send the bridged call to a dial plan context that does for example Background(yes-or-no,<options>), you can pull the extension and save it, then read it later |
21:54.29 | zamba | sibiria: but the original agi script has sent the call and has lost all status of it.. how can i tie everything together |
21:54.38 | sibiria | channel variables, still |
21:54.52 | zamba | could you possibly show me an example of this? |
21:55.08 | zamba | before my head just simply explodes... |
21:55.42 | zamba | there's no originate command in agi |
21:57.49 | zamba | exec("originate" ... ? |
21:59.09 | Samot | OK so how many numbers are in this list? |
21:59.26 | Samot | And each time a recording is generated it must send to this lsit? |
21:59.28 | Samot | list? |
22:00.03 | zamba | for the PoC it's maybe just 2-3 |
22:00.16 | zamba | but i want this to be dynamic through a database backend |
22:00.24 | zamba | but that's work after the PoC |
22:00.39 | Samot | And this should all be triggered on a hangup? |
22:02.00 | zamba | Samot: yup.. |
22:02.25 | Samot | And the caller will have options to re-record? |
22:02.37 | zamba | after the PoC, but sure.. we want that as well |
22:02.47 | Samot | What are you trying to prove? |
22:02.57 | Samot | You keep saying PoC but then everything comes after. |
22:03.06 | Samot | So what is trying to be proved right now? |
22:03.27 | Samot | Someone can call in and record a message? |
22:03.35 | zamba | just the flow.. that we can send the recording to all recipients sequentially.. and that we can receive the dtmf from the callers and then stop the sequential calling |
22:03.47 | zamba | that's the PoC for now |
22:04.09 | Samot | So why does this need to be done in the hangup? |
22:04.30 | sibiria | he doesn't want the caller to have to wait on the line while the application dials 40+ numbers to find a taker |
22:04.38 | zamba | then we'll add dynamic database lookup for the recipients, screening of the incoming call (maybe also with pin code).. and maybe also a callback to the person who first dialed in with a status |
22:04.40 | sibiria | doing it in hangup is just one way of doing it |
22:04.46 | Samot | And who said they had to? |
22:05.10 | zamba | yup.. the original caller should just leave the message and do something else.. the thought is that asterisk should do this work for the person |
22:05.12 | sibiria | nobody. hence doing it after hangup |
22:05.20 | Samot | OK. |
22:05.52 | Samot | So I'm sure the 40+ recipients will enjoy the false positives. |
22:06.03 | zamba | what do you mean? |
22:06.11 | Samot | Because if they are disconnect, or decide while recording they don't need this anymore and hang up.. |
22:06.20 | Samot | The hangup handler triggers the calling of all the list. |
22:06.31 | Samot | A hangup is a hangup |
22:07.30 | zamba | ah, yeah, that could of course be an issue.. so it would be nice with a confirmation.. as you said.. an option to re-record and verify the recording before actually triggering everything |
22:07.33 | zamba | good point |
22:07.58 | *** join/#asterisk Nglpx1 (6d350b30@109.53.11.48) |
22:08.13 | Nglpx1 | Samot |
22:09.16 | Nglpx1 | So, i have been deleted freebpx and i have restored the snapshot with asterisk |
22:10.00 | Nglpx1 | Now, you asked me a particular log what was it? |
22:10.12 | Nglpx1 | Dial what.. |
22:12.02 | Samot | The Dialplan you are using |
22:12.09 | Nglpx1 | Yes yes |
22:12.26 | zamba | Samot: what other place do you suggest triggering this? instead of an hangup handler? |
22:12.30 | Nglpx1 | how was the command? |
22:13.05 | Nglpx1 | Dialplan show? |
22:13.09 | *** join/#asterisk Typhon (~Typhon@ipservice-092-211-116-010.092.211.pools.vodafone-ip.de) |
22:13.23 | Samot | Just open extensions.conf and copy and paste it |
22:13.42 | Nglpx1 | Okok |
22:14.44 | Samot | zamba: like I said I do a system call to trigger a script to start processing calls |
22:15.18 | Nglpx1 | Samot: https://pastebin.com/iDXC8fjD |
22:16.38 | Nglpx1 | Did you ask me to try making a call and show you a certain wrong memory dialplan? |
22:16.56 | zamba | Samot: ok, so i'm back to square one again... :) |
22:22.43 | Nglpx1 | Samot are you here? |
22:23.08 | sibiria | zamba: uff, hold on, give me a minute or two and i'll make you an example |
22:23.13 | sibiria | but it'll use Lua |
22:23.23 | sibiria | so you'll have to "transcode" to python on your own |
22:23.36 | zamba | well, i have been looking for a way to learn lua, so :) |
22:27.06 | Nglpx1 | Samot rip |
22:27.15 | Samot | Im trying to eat |
22:27.24 | Nglpx1 | Sorry |
22:34.33 | Samot | zamba: How are you back to square one? |
22:35.58 | *** join/#asterisk forgotmynick (uid24625@gateway/web/irccloud.com/x-qthjrppudcrytbad) |
22:40.28 | *** join/#asterisk Nglpx1 (6d350b30@109.53.11.48) |
22:40.34 | Nglpx1 | Samot have you done or not? |
22:41.12 | Samot | There is nothing wrong with the dialplan. |
22:41.23 | Samot | It should accept any digits being sent and prefix a + to it |
22:41.56 | Nglpx1 | so why can't I call Italy |
22:42.30 | Samot | How are you dialing it? |
22:42.30 | Nglpx1 | Call only in us |
22:43.16 | Nglpx1 | compilation? (I donât understand) |
22:43.38 | Samot | When you pick up the handset and dial digits, how are you dialing? |
22:43.58 | Samot | Are you dialing 39XXXXXXXX |
22:44.22 | Nglpx1 | For exemple, i call America 12053054567 |
22:44.26 | Samot | GD. |
22:44.33 | Nglpx1 | I call italy 393334445555 |
22:44.34 | Samot | How. Do. You. Call. Italy. |
22:44.51 | Samot | OK and you get rejections from the provider? |
22:45.27 | Nglpx1 | âTemporarily Unavaible â |
22:45.44 | Samot | Then you need to call the provider and find out why calls to the US work but not to Italy. |
22:47.05 | Nglpx1 | Not is that the problem. the other day i used asterisk version 16 and i could call any prefix the provider already knows i am calling internationally |
22:48.35 | Nglpx1 | I need to choose "39" in the asterisk configuration, I'm sure that while I was doing the 16 I had a screen asking me the country !! |
22:49.03 | Samot | Dude.\ |
22:49.09 | Samot | Stop with that because it's wrong. |
22:49.21 | Samot | Your dialplan will match that pattern just fine. |
22:49.37 | Samot | So if your provider is sending back 4XX errors then they are rejecting the call. |
22:51.36 | Nglpx1 | let's see, if I connect the provider's data directly to the softphone according to your theory, the call will be rejected? :) |
22:52.07 | Nglpx1 | I tell you that the provider accepts call forwarding internationally |
22:52.17 | Nglpx1 | I can show you that |
22:59.09 | Samot | Show me what? |
23:03.30 | zamba | Samot: well, maybe not exactly.. i now know what NOT to do :) |
23:05.38 | zamba | so i guess i was just wondering to do it non-elegant.. use ami and originate to dial into a context.. which then would run an AGI script.. and this will then write to disk the return value.. and then the main python script that was called from system or hangup handler or whatever, will monitor the disk and then follow up on stuff |
23:05.49 | zamba | do that as a start and then we'll see |
23:05.50 | zamba | a proper PoC :p |
23:07.06 | Samot | What monitoring do you need? |
23:07.14 | Samot | You're cycling through a list. |
23:10.56 | zamba | yes, if i did it inside the dialplan, then i could probably skip it |
23:11.33 | zamba | but i don't want to get a migraine by trying to decipher the loop structure inside asterisk dialplan |
23:11.57 | sibiria | zamba: sorry, i'll have to backtrack to my initial suggestion earlier today to use the handler only to signal to something external, or just run something external monitoring for a recording to call - after testing a bit it seems Originate in a hung-up channel is always async instead of blocking, so there's no way in the AGI script to know the outcome of the call or the DTMF events received |
23:12.56 | zamba | sibiria: ah, ok.. i'm thinking of just doing AMI calls to originate into a context and then let each of them call an agi script to "report" back to the main script |
23:12.58 | sibiria | that is, executing Originate in a hung-up channel returns immediately instead of waiting until the dial plan has finished the way it behaves by default |
23:13.16 | zamba | using disk as IPC |
23:13.32 | sibiria | yeah dispatching job through hangup |
23:13.50 | zamba | i'll start out with that and then i'll try and improve on it if the PoC turns out to be something that we want to follow up on |
23:14.07 | zamba | sibiria: thank you for your efforts and help :) |
23:14.32 | Samot | Lol |
23:16.51 | *** join/#asterisk opal (~wowaname@volatile/founder/wowaname) |
23:21.24 | sibiria | file: is that intended behavior, btw. |
23:21.41 | sibiria | originate being non-blocking instead of blocking when invoked in a hung-up channel |
23:22.15 | sibiria | it originates calls just fine, as always, but it considers the call a "SUCCESS" immediately by just entering the destination context, while the new channel is still ringing |
23:22.40 | sibiria | i mean, by just seeing that the destination context/extension exists |
23:23.02 | *** join/#asterisk nglpx1 (05abc946@5.171.201.70) |
23:23.09 | nglpx1 | Samot |
23:23.38 | nglpx1 | Your response? I lost connection |
23:23.39 | Samot | ? |
23:23.53 | sibiria | at first i thought the AGI Lua framework i use was misbehaving |
23:24.21 | Samot | I asked what you were going to show me. |
23:25.37 | nglpx1 | I just tried it, I called my Italian number by connecting DIRECTLY to the sip provider from the softphone and it works. the provider does not reject calls as you say. |
23:26.10 | Samot | Then you arent presenting the call properly |
23:26.27 | Samot | Which is also what I said could be the case |
23:26.38 | nglpx1 | when i was 16 during the installation she asked me to set my country in this (13.8) she didn't ask me, does it have anything to do with it? |
23:26.44 | Samot | So, again, you need to know why |
23:26.58 | Samot | Who is she? |
23:27.37 | nglpx1 | then even the American number would not work if I did not present the call well |
23:28.15 | nglpx1 | she? Asterisk 13.8 |
23:28.45 | nglpx1 | She in the sense the version |
23:28.45 | Samot | I guess I don't know what you are talking about. |
23:29.07 | Samot | Cuz I have never had that on installs. |
23:30.20 | nglpx1 | , I said, when I installed version 16, it asterisk me in the configuration asks THE COUNTRY WHERE YOU ARE. |
23:30.21 | nglpx1 | While in 13.8 DOES NOT ASK |
23:30.43 | Samot | Ok so run 16 |
23:31.03 | Samot | Why you are using 13 when it is pretty much dead is beyond me. |
23:31.14 | Samot | 16 is current and solves your problem. Use it. |
23:31.34 | nglpx1 | because I uploaded the part of packages that 16 does not load due to compilation errors, it's a bug you have to compile the library completely |
23:31.46 | nglpx1 | Becouse my sip comunicate only with 11/13 |
23:31.48 | Samot | What? |
23:32.07 | Samot | Gotrunk only works with 11/13? |
23:32.12 | nglpx1 | Yes. |
23:32.17 | Samot | Thats wrong |
23:32.25 | nglpx1 | Look on site |
23:32.38 | Samot | Examples are just examples |
23:32.54 | Samot | How would they know they version? |
23:33.19 | nglpx1 | even in 3xc configurations it says to be based on version 11 or 13 |
23:33.49 | Samot | Then get a better provider. |
23:34.00 | Samot | Because 11/13 of Asterisk is unsupported. |
23:34.17 | nglpx1 | please, would you be able to log into my ssh and watch? please. |
23:34.23 | Samot | Nope |
23:35.03 | nglpx1 | (despair) |
23:36.23 | nglpx1 | No have other ideas, so you telling me asterisk donât work in any possibility? Asterisk is no possibile to fix? Incredible. |
23:36.36 | Samot | No, that's not what I'm saying at all. |
23:36.41 | Samot | Don't be dramatic. |
23:37.01 | nglpx1 | it seems so, you don't know how to fix it |
23:37.06 | Samot | OK. |
23:37.12 | Samot | So you're going to play that game? |
23:37.30 | nglpx1 | don't get dramatic? with tears after only losing 16k euros today?? |
23:37.37 | Samot | 16K? |
23:37.37 | *** join/#asterisk overyander (~overyande@50.115.255.72) |
23:37.48 | Samot | How did you loss 16K today? |
23:38.37 | HannaM | bitcoin ... !? |
23:38.42 | nglpx1 | since it no longer works I have had these losses if the number does not go within 20 minutes they will remove 10k from the escrow today I have already lost 6k with no customer service |
23:38.48 | nglpx1 | Yes, bitcoin. |
23:39.03 | Samot | Then I guess you should have hired someone that knows what they are doing. |
23:39.07 | Samot | If it was that vital. |
23:39.28 | Samot | But you won't even contact your provider to find out why they are rejecting the calls. |
23:39.56 | Samot | You haven't provided a *full call debug* that has been requested multiple times. |
23:39.59 | nglpx1 | I did but he asked me for a lot of money and kept putting it off and wasting fucking time...... |
23:40.33 | Samot | So don't cry to me about losing 16K in bitcoin. If it was that important, we wouldn't have wasted 10 hours on this. |
23:40.38 | Samot | With complete bullshit. |
23:40.42 | nglpx1 | I'm sending you a debug now. |
23:53.39 | *** join/#asterisk nglpx1 (05abc946@5.171.201.70) |
23:53.44 | nglpx1 | Samot |
23:53.49 | nglpx1 | https://pastebin.com/F56vhcv6 |
23:54.01 | nglpx1 | I have included ALL. |
23:54.21 | nglpx1 | From the frist time |
23:55.05 | nglpx1 | I start asterisk, I put the debug, I call us, I call Italy |
23:55.47 | nglpx1 | by the way what is the point .. missing 5 minutes now I have lost everything.... |
23:56.33 | Samot | INVITE sip:+393515201769@23.254.225.86 SIP/2.0 |
23:56.39 | nglpx1 | it would be impossible to find the problem in time, but at least I know what it was |
23:56.40 | Samot | You're using Bria, correct? |
23:56.47 | nglpx1 | Yesyes |
23:57.09 | Samot | Bria is already sending the + |
23:57.19 | Samot | You don't have a pattern that matches +39 |
23:57.49 | Samot | So all those 4XX errors were actually Asterisk telling you it couldn't do anything. |
23:57.51 | nglpx1 | So how I can fix? |
23:58.02 | Samot | [Apr 26 23:43:34] NOTICE[5978][C-00000006]: chan_sip.c:26224 handle_request_invite: Call from '201' (5.171.201.70:48077) to extension '+393515201769' rejected because extension not found in context 'from-internal'. |
23:58.10 | Samot | Create a pattern that has a + |
23:58.27 | Samot | And doesn't add the + in the Dial() |
23:58.42 | nglpx1 | Where I make this modify? |
23:58.50 | nglpx1 | In one conf file? |
23:59.50 | Samot | https://www.irccloud.com/pastebin/zYulKxOC/ |
23:59.58 | Samot | Just add that to the from-internal. |