• Welcome to SAIL Community Supported PBX . Please login or sign up.
 
May 18, 2024, 09:23:42 PM

News:

SMF updated to 2.0


Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Del

1
Quote from: sysadmin on April 18, 2020, 10:05:57 AMGlad you like the V6 layout.  Did you try running it on a tablet or smartphone yet?  It's pretty cool in the way it adapts to differing screen sizes and layouts.

Yes I tried it on my phone and a tablet and it works really well, very impressive how it adapts and prioritised data/menu/columns to fit.
2
Quote from: sysadmin on April 17, 2020, 09:06:34 PM
OK, let's see.   Which release of 6 are you running?  I wasn't aware of issues with internal calls not showing up.  I'm assuming you are talking about the recordings browser component, not the underlying data.  Yes?

It shows as running 6.0.1-52.

Yes the internal calls are all recorded fine and they are searched and found fine, it's just the recording class PHP file (sark/www/origrecs/lib/Recording.class.php ) didn't have anything in it that would match those calls to be shown in a table on the browser, so they don't actually show up in the list to playback. I had to add the line from my first post along with table data in the PHP file to get Internal calls to show up when searched.


For conference recording I ended up (since my post) adding the following to the "sark_customer_extensions_globals.conf" (perhaps incorrect way to do this now reading your post) so I could eliminate the need to rename the files when moving them.


[conferences]
exten => 101,1,NoOp(conference 101)
same => n,Answer(500)
same => n,Authenticate(1234)
same => n,Set(Confbridge(bridge,record_file)=/var/spool/asterisk/confbridge/${STRFTIME(${EPOCH},,%s)}default-${EXTEN}-${EXTEN}.wav)
same => n,Set(Confbridge(bridge,record_file_timestamp)=no);
same => n,ConfBridge(${EXTEN},,sark_hosted_user)
same => n,Hangup()


To give me the format I needed and I added the "record_file_timestamp=no" because it seemed Asterisk added the time to the end of each file which I didn't want in my formatting. My files end up like this:

xxxxxx6795-default-101-101.wav

Only reason I went for this is I wanted it to look exactly like the other recordings so I didn't need to add much the the PHP file to get this to be matched up and shown in a table and because I've forced the conference room number as both the in and outgoing ID I can use that to match it with the line from my first post. I manually added the tenant name so potentially the recording could just be shown to the Tenant searching the recordings from the browser (I haven't looked at this yet but it looks like the recordings can be password protected with tenant as users)


Quote from: sysadmin on April 17, 2020, 09:06:34 PMIn terms of conference rooms and call recording, we took a slightly different path to you. 

Bear in mind, customers don't always want recording to be turned on for a particular conference room so we wanted to give them the choice.   What we have is an app which uses a prefix (in this case 2) to invoke the conference with recording enabled


I never thought about this and I've never touched custom apps before. I like this approach better and going to have a play when I get chance to see if I can get this working, thanks for the tip/code.

Quote from: sysadmin on April 17, 2020, 09:06:34 PM
Finally, rsync won't move files that are busy so you can run this as often as you like.

This was the missing piece, thanks for that, I'll try rsync so I don't have to wait to run the cron job.

Were you able to reproduce the GB sounds not working (playing Alison US) on a new member entering/leaving?
3
I've been playing with some of the new V6 features in particular the recordings retrieval/playback (which is brilliant).
Just thought I'd post some findings that may help other users and a few questions along the way.

I couldn't get internal calls to show up and I thought maybe they weren't being recorded anymore, then after some digging I realised they were recorded but had been left out the add call portion in the recording class PHP (intended I assume)
Have very basic knowledge with coding but I added the following to catch any files with the to/from portion both being less than 4:

else if ((strlen($file_list[1+$this->offset]) <= 4) && (strlen($file_list[2+$this->offset]) <= 4))

Then added the relevant table for internal calls and then the calls showed up in the retrieval and playback.

Next I thought it would be cool if I could have the conference room calls show up in the retrieval too, I hit a few snags on this.

First thing I noticed (slightly off topic) is when I tested the conference room, the user entering/leaving sound was Alison American voice even though I have the country set to GB and the en-gb sounds installed, when I watched the Asterisk console I noted the following:


Playing 'conf-hasjoin.gsm' (language 'en')
Playing 'confbridge-leave.gsm' (language 'en')
Playing 'conf-hasleft.gsm' (language 'en')


These all had language 'en' where as everything else that was working correctly had 'en-gb' I wasn't sure how to fix this so I just copied those 3 files from the gb sounds and overwrote them in the Alison sounds, it then worked as required.
I don't know if this is a bug or whether my install just got messed up somehow?

So with that out the way I uncommented "record_conference=yes" in the confbridge, which I believe is the correct way to turn on recording for the conference rooms? (it did work)
The conference recordings started popping up in the monitor folder, but then I realised that these aren't processed/moved to the monout folder by the selmix script like the regular calls are.
To get around this I setup a script to rename and move them into the monout folder so the offload script would move them along with the other recordings:

#!/bin/bash

for file in /var/spool/asterisk/monitor/confbridge*; do
    bn=$(basename $file)
    checkifempty=${#bn}
    if [[ "$checkifempty" = 1 ]]; then exit
fi

IFS='-|\.' read var1 var2 var3 var4 <<< "$bn"

newfile="$var3-default-$var2-$var2.$var4"

mv $file /var/spool/asterisk/monout/$newfile

done
exit


This basically moved the portion of the file name around so it could be inline with the format of the other recordings:
confbridge-100-1586602936.wav
would be come
1586602936-default-100-100.wav
I added the default tenant to pass the recordings result file check and added the extra conference room number so I could match a rule when searching.

So with the conference files in a useable format matching the others I added the following into the recording class file
else if (strcmp($file_list[1+$this->offset], $file_list[2+$this->offset]) == 0)

This checks the to and from portion of the recording file name to see if they are the same, since I renamed the conference recording files to have the room number in both the to and from portion they should be the only files that ever match this rule (I couldn't think of any other circumstances)
I added the relevant table, and then conference calls now show for retreival and playback too (finished output screenshot attached)

Issues with the above from what I can see:
1. Due to me forcing default into the filename it makes the solution only for single tenant, which leads me to a quick question, is multiple tenant implemented on conferences? I couldn't see an option.
2. The script for moving the conference recordings from monitor to monout has to be run when the system isn't active because the conference file is in the monitor folder before the conference is finished so could potentially be moved before complete (I've set it to run in a cron job at 1am)

The workaround to both in an ideal situation would be the conferences given over to selmix and be processed and moved like the regular recordings and then just comment out the lines in recording class file if you don't want them to show in the retreival.
Also some sort of multi tenant could be added on the conference section of the gui to have that picked up/added in the recording name and maybe a little record yes/no option for each conference room on the gui could be cool (if conferences can have individual options like that in Asterisk)

I don't know if any of that is possible, I'm pretty limited with my knowledge and I may be misunderstanding how everything works and the limitations from what can be done within the SARK interface. Looking to learn and play with it more now.

Sorry for the long post, hopefully no one comes along and tells me there's a toggle option somewhere in the web GUI for all of this!  ;D







4
Debian / Re: Debian 10
April 08, 2020, 06:46:02 PM
I just tried installing on Debian 10 and it all seemed to go fine and the PBX is up and running, only thing that didn't "automatically" install as per the guide was the GB sounds package.
5
I tried to get the CDR-Stats installed but couldn't seem to get it to install properly, it looks like it hasn't been updated for a while and I broke a couple of SAIL test installs trying so I gave up on that.

The Master.csv works of course but I don't see it being a user friendly/intuitive way of searching the data compared to the simple CDR section of V5 and prior.

Hopefully some sort of basic CDR searching is considered adding in the future because the rest of V6 is spot on, looks really great I really like the new layout and additions.
6
I'm more just using the CDR section in V5 interface to quickly search/view the last handful or so of calls system wide, just to quickly see what recent people had been doing/calling, rather than using it for analyzing/stats etc.

Is the CDR list downloadable from the V6 interface? Is this just the CSV file with Epoch time etc?
I might fire up a new VM and take a look at V6 again this weekend.

How is the billing platform package implemented? Is this through Provu?
7
I'm still running V5 on my main box, haven't had much chance to play with the newer version since the release (I really liked the V6 interface from what I saw when messing with it)

In the original alpha V6 announcement it mentioned a possible replacement to the Areski CDR, has this seen any progress?
8
Debian / Re: Debian 9.x stretch support
June 11, 2018, 07:00:23 PM
Quote from: sysadmin on March 12, 2018, 09:19:34 AM
Sail is now packaged for Debian 9.  This is still a beta release but it is available to install now from the repository. 

Cool, thanks. Has anything changed between v 5.0.0-32 & v5.0.0-57 or is it strictly the Debian 9 changes?

Quote from: sysadmin on April 08, 2018, 07:59:13 PM
I'll take a look at the holiday schedule bug you found. I think it's because "Split" has gone in PHP7.  I've put it on the list.

I had a quick search and it looks like explode replaced the split function. Changing the split function to explode seemed to fix it for me. No idea if this is the proper way to do it but it works if anyone want to try it.
9
Thanks! I'll recommend a new router.
10
Seems to have started doing the same thing again.
New log attached. If anything else is needed let me know. Thanks.
11
Quote from: sysadmin on November 11, 2017, 05:12:45 PM
Sorry for the delay in replying to this.   I was pretty sure that this issue had been reported through ProVu support and we were awaiting login creds from the customer.  In any event, the error messages in the log suggest you have your registration direction confused in the trunk.  You can post the SIP peer and register entries if you'd like us to look at it.

The registration string looked like this for both trunks:
username:secret@host/username
username:secret@host/username


It seemed that the problem wasn't when the external IP changed, we found out that power had been dropping out knocking off the router and PBX, it seemed like the PBX booted and was ready to go before the router had connected to the internet and without a commit it wouldn't receive incoming calls.
A battery backup has been installed now and haven't had the issue since.
12
Hello,

I seem to be having trouble with a SAIL PBX (V5) with trunks and incoming calls.
All works perfectly then randomly every few days all calls go to the SIP providers voicemail, outgoing calls still work fine.
3 different test trunk provider behave the same.
Trunks all show as registered from the SAIL web interface (though one time they did show registered to 127.0.0.1) - If I issue a commit from the web gui incoming calls immediately start to work again.
I originally thought it might be linked to when the external IP from the ISP changes? I'm pretty sure it had changed each time they stop.
Can I get Debian/SAIL to check this and issue a commit if that is the cause?

Anything I can try to troubleshoot?

Heres some of the asterisk log when incoming call were down

[2017-10-26 17:59:44] ERROR[1501] chan_sip.c: Peer '4189702' is trying to register, but not configured as host=dynamic
[2017-10-26 17:59:44] NOTICE[1501] chan_sip.c: Registration from '<sip:4189702@sip.voipcheap.co.uk>' failed for '127.0.0.1:5060' - Peer is not supposed to register
[2017-10-26 17:59:44] SECURITY[1378] res_security_log.c: SecurityEvent="FailedACL",EventTV="1509037184-954445",Severity="Error",Service="SIP",EventVersion="1",AccountID="4189702",SessionID="0x7f278c0ff828",LocalAddress="IPV4/UDP/127.0.0.1/5060",RemoteAddress="IPV4/UDP/127.0.0.1/5060",ACLName="peer_not_dynamic"
[2017-10-26 17:59:44] ERROR[1501] chan_sip.c: Peer '2127491' is trying to register, but not configured as host=dynamic
[2017-10-26 17:59:44] NOTICE[1501] chan_sip.c: Registration from '<sip:2127491@sipgate.co.uk>' failed for '127.0.0.1:5060' - Peer is not supposed to register
[2017-10-26 17:59:44] ERROR[1501] chan_sip.c: Peer '4189702' is trying to register, but not configured as host=dynamic
[2017-10-26 17:59:44] NOTICE[1501] chan_sip.c: Registration from '<sip:4189702@sip.voipcheap.co.uk>' failed for '127.0.0.1:5060' - Peer is not supposed to register
[2017-10-26 17:59:44] SECURITY[1378] res_security_log.c: SecurityEvent="FailedACL",EventTV="1509037184-962073",Severity="Error",Service="SIP",EventVersion="1",AccountID="4189702",SessionID="0x7f278c0ff828",LocalAddress="IPV4/UDP/127.0.0.1/5060",RemoteAddress="IPV4/UDP/127.0.0.1/5060",ACLName="peer_not_dynamic"
[2017-10-26 17:59:44] ERROR[1501] chan_sip.c: Peer '4189702' is trying to register, but not configured as host=dynamic
[2017-10-26 17:59:44] NOTICE[1501] chan_sip.c: Registration from '<sip:4189702@sip.voipcheap.co.uk>' failed for '127.0.0.1:5060' - Peer is not supposed to register
[2017-10-26 17:59:44] WARNING[1501] chan_sip.c: Forbidden - wrong password on authentication for REGISTER for '4189702' to 'sip.voipcheap.co.uk'
[2017-10-26 17:59:44] WARNING[1501] chan_sip.c: Forbidden - wrong password on authentication for REGISTER for '2127491' to 'sipgate.co.uk'
[2017-10-26 17:59:44] NOTICE[1501] chan_sip.c: Peer '404' is now Reachable. (13ms / 2000ms)
[2017-10-26 17:59:44] NOTICE[1501] chan_sip.c: Peer '402' is now Reachable. (19ms / 2000ms)
[2017-10-26 17:59:45] NOTICE[1501] chan_sip.c: Peer '401' is now Reachable. (61ms / 2000ms)
[2017-10-26 17:59:54] NOTICE[1501] chan_sip.c: Peer '2127491' is now Reachable. (1ms / 2000ms)
[2017-10-26 17:59:56] NOTICE[1501] chan_sip.c:    -- Registration for '30201321@46.31.231.185' timed out, trying again (Attempt #3)
[2017-10-26 18:00:16] NOTICE[1501] chan_sip.c:    -- Registration for '30201321@46.31.231.185' timed out, trying again (Attempt #4)
[2017-10-26 18:00:36] NOTICE[1501] chan_sip.c:    -- Registration for '30201321@46.31.231.185' timed out, trying again (Attempt #5)


Any suggestion appreciated  :)
13
Quote from: sysadmin on September 17, 2017, 05:22:32 PM
It works OK for us just left blank.

Not sure if something went wrong with the SAIL install but I had the same problem when trying to look at the logs from the web interface - Could not read file fail2ban.log! etc - putting the space in stops the error.

14
Quote from: compsos on October 02, 2017, 03:04:53 AM
Now that autoprovisioning works, where can you put a firmware file? Is it possible to load firmware from Sark?
The firmware file is in the opt/sark/provisioning directory.

I don't think the provisioning location can be used for firmware files.

I usually create a 'firmware' directory inside the www directory or in the public directory and put the firmware in there, examples:

opt/sark/www/firmware/ = http://pbx/firmware/
opt/sark/public/firmware/ = http://pbx/public/firmware/

Either one should work fine, I use them for custom wallpapers, firmware etc
15
Quote from: sysadmin on September 17, 2017, 04:51:30 PM
So I'll leave this here but the issue is fixed in the next out which is looking as tho' it will 5.1 but that may change.

Thanks, your code works great. Look forward to trying the new version when it becomes available.