No assisted transfers are possible, Asterisk 13.22.0, FreePBX Utility 14.0.5.5

Hello @all,

i did not found a solution to this, my problem, therefore i am asking here.

I cant do none assisted calls, the system will loose functionality to calls from outside.

*2 < ext > # does not work. (sorry brackets are gone, try it with space, textform: star two bracket ext bracket hash, with no space)

# < ext > # does work. (textform: hash hash bracket ext bracket hash, with no space)

What is going wrong?

Example, what goes wrong. :frowning:
Outside call comes to a process/queue and so on, all that stuff works as designed. Also pressing 1/2/5 in IVR works fine. If nothing happens -nobody will answer the call, after X min. the system plays an announcement, and hangs up. That all is very fine.
The call flow ist fine.

If the queue members ring (211 or 212) -somebody get che call, we can do ## < ext > # many times. As playing football. The call will not get lost.

But no *2 < ext > # will work.

  • call comes to 211/212, somebody answers
  • speaking … then
  • *2 < ext > # will ring the other ext. (at *2 MOH is online to callee)
    now, the two exts can speak to each other.
    Until now, it works as wanted.

But …
After the first ext hangs up, the callee will not be connected to the new ext, instead, the callee will hear the music/MOH until he dies. :wink:

But after this procedure, a new call will not ring on the queue members, on ext 211/212. They are dead for the outside call.

This is possible:
216 can call 211/212
211 -> 212 OK
212 -> 212 OK

But, if somebody calls from outside, none of the queue-members 211/212 will ring. There is NO timeout, that it will works after this timeout. Nope. Only a

/var/lib/asterisk/bin/amportal restart

will reset the system.

asterisk -rx “core show channels” shows:

Channel Location State Application(Data)
PJSIP/211-00000011 s@macro-dial-one:1 Up AppDial((Outgoing Line))
PJSIP/212-00000013 s@macro-dial-one:1 Up AppDial((Outgoing Line))
2 active channels
0 active calls
43 calls processed
Asterisk ending (0).

Assisted call transfer kills (somehow) the whole functionality (for the outside callee)

Other calls to ext 214/215 etc will ring. Also

Call to 214 (direct form outside) rings, ##<211># is OK.
Call to 214 (direct form outside) rings, *2# is also OK, as pressed *2 MOH will plays, the other rings, get the call, speak to 214, as above after 214 hangs up, MOH will play to callee, the call is not asssited transferd to other .

At this status, no intercom possible. Only
amportal restart
will clean/reset the system, brings (for a short period) the whole functionality, untel the first assisted transfers (which also will not works). :frowning: :frowning: :frowning:

asterisk -rx “pjsip show endpoints” | grep -e ‘in|Unava’

Endpoint: 11/11 Unavailable 0 of inf - OK
Endpoint: 12/12 Unavailable 0 of inf - OK
Endpoint: 13/13 Unavailable 0 of inf - OK

Endpoint: 211/211 In use 2 of inf - why? QMember
Endpoint: 212/212 In use 1 of inf - why? QMember

Endpoint: 213/213 In use 1 of inf - why?
Endpoint: 214/214 On Hold 3 of inf - ?
Endpoint: 215/215 Not in use 0 of inf OK
Endpoint: 216/216 In use 2 of inf - why?
Endpoint: 217/217 Unavailable 0 of inf - OK/NC
Endpoint: 218/218 Not in use 0 of inf OK
Endpoint: 219/219 Not in use 0 of inf OK
Endpoint: 220/220 Not in use 0 of inf OK
Endpoint: 221/221 Not in use 0 of inf OK
Endpoint: 99/99 Not in use 0 of inf OK

After a time period:

asterisk -rx “core show channels”
Channel Location State Application(Data)
PJSIP/216-0000004d (None) Up AppDial((Outgoing Line))
PJSIP/216-00000053 (None) Up AppDial((Outgoing Line))
PJSIP/211-00000011 s@macro-dial-one:1 Up AppDial((Outgoing Line))
PJSIP/214-0000004c s@macro-dial-one:54 Up Dial(PJSIP/216/sip:216@IP-Addr
PJSIP/214-00000052 s@macro-dial-one:54 Up Dial(PJSIP/216/sip:216@IP-Addr
PJSIP/214-00000039 (None) Up AppDial((Outgoing Line))
Local/211@from-inter 211@from-internal-xf Up (None)
Local/211@from-inter s@macro-dial-one:54 Up Dial(PJSIP/211/sip:211@IP-Addr
PJSIP/211-0000003a (None) Up AppDial((Outgoing Line))
Local/213@from-inter s@macro-dial-one:54 Up Dial(PJSIP/213/sip:213@IP-Addr
Local/213@from-inter 213@from-internal-xf Up (None)
PJSIP/213-00000054 (None) Up AppDial((Outgoing Line))
PJSIP/212-00000013 s@macro-dial-one:1 Up AppDial((Outgoing Line))
13 active channels
4 active calls
132 calls processed

The HW is, YL 48S (211/217) /46S (212) /60p (213/4/5/6/8) with five 56H.
Tested also temp. with Grandstream 2170 as 211, same.

Any, any help appreciated. Thanks in advance.

ELindemann

… probably i should specify, that voip-LAN is behind a pfsense(?).

ELindemann

  1. Any reason why you aren’t using the phone side transfers instead of using the DTMF feature codes?
    2 Does it happen when you use the phones built in assisted transfer?
  2. When the dial *2EXT# are they actually waiting for someone to pickup before hanging up the call? Or are they doing a partial assisted transfer.
  3. On your queue what is your setting for Skip Busy Agents.

This is sample senarios described in ASTERISK~25185. A patch was created which broke more stuff. Then they finally reverted the patch in 13.24.1 and added queue null checks so the queues didn’t break. There were major issues with 13.26 so they backtracked down to 13.22.They have stated that 13.26-3 and above can be installed safely. I’d recommend getting above 13.26-3 and seeing if you still have the same issues. Fortunate for you, you are running FreePBX14 and can upgrade. Anyone stuck on FreePBX13 will still have these segfaults until they upgrade to FreePBX14 or 15 which is still broke in my eyes due to UCP’s lack of templates. Also some of my UCP 14 users keep deleting their widgets…even though they are locked. Then they call and say I can’t see my faxes. The page is just blank. I have to go in an manually add their widgets back for them.

A segfault happens in asterisk in the following scenario:

Given I have 2 users, Alice and Bob, each with a SIP phone (using chan_sip)
Given I have a queue Foo, with member Bob
When Alice calls the queue Foo
And Bob answers the calls
And Alice then does a direct transfer (SIP native) to another extension
Then asterisk segfaults

There is another similar scenario where a segfault happens:

Given I have 3 users, Alice, Bob and Carol, each with a SIP phone (using chan_sip)
Given I have a queue Foo, with member Bob
When Carol calls Alice
And Alice begins an attended transfer to the queue Foo
And Bob answers the calls
And Alice finalize the attended transfer
Then asterisk segfaults

Hi voipgenius,

thanks for your comment, sorry for being late with my answer.

My problem on freepbx was a severe damage on the xfs filesystem.

I could solve this problem. I was working @home with two weeks older kvm-backup. But for a short period of time, i forgot, that there were two systems i was working on. kvm makes it easy to backup. But it leads to some confusion too, to much backups. :slight_smile:

The copied backup @home was fully functional, no problems @all. The only difference betweeen this two (productive/pre-productive) installation were a) a manually installed openvpn/EasyRSA3 b) and a bigger (resized) root partition.

OpenVPN should not mess up the system.

[off topic: if you manually install openvpn to freepbx -it is very easy to install- and you will not use udp/1194, you have to configure Connectivity/Firewall/(right side)Services/Custom Services/Create new Service your choosen port for to be opened after the fw started. It works, with YL48S, after a reboot 32s later the tunnel will established again, yessss. If you need the client/server-config(YL4x) file, pls. pm]

The short version how i recovered my system (a virt. kvm-guest on debian host):

First of all:

  • get a lot of information about your system/root-filesystem, like …

  • do a rsync-copy (or on root/boot-part find . -print | cpio -dumpv /to_somewhere/[root/boot]) and
    rsync -avPh --log-file=/somewhere/fpbx_boot.log /mount-of-boot/ /somewhere/rsync.boot/
    rsync -avPh --log-file=/somewhere/fpbx_root.log /mount-of-root/ /somewhere/rsync.root/

  • for boot and root do this, with > /somewhere/[cksum / md5sum / getfacl]_[boot and root].log

find . -xdev -type f -print0 | sort -z | xargs -0 cksum
find . -xdev -type f -print0 | sort -z | xargs -0 md5sum
find . -xdev -type f -print0 | sort -z | xargs -0 getfacl

  • do a xfs_dump
    xfsdump -l 0 -f /somewhere/fpbx.boot /mount-of-boot
    xfsdump -l 0 -f /somewhere/fpbx.root /mount-of-root

(restore would be with
xfsrestore -v verbose -f /somewhere/fpbx.boot /mount-of-boot
xfsrestore -v verbose -f /somewhere/fpbx.root /mount-of-root
)

  • pipe all partition/pv/vg/lv information

    blkid >> /somewhere/freepbx.hd
    pvdisplay >> /somewhere/freepbx.hd
    pvs >> /somewhere/freepbx.hd
    vgdisplay >> /somewhere/freepbx.hd
    vgs >> /somewhere/freepbx.hd
    lvdisplay >> /somewhere/freepbx.hd
    lvs >> /somewhere/freepbx.hd

    lvscan >> /somewhere/freepbx.hd
    pvscan >> /somewhere/freepbx.hd
    vgscan >> /somewhere/freepbx.hd

  • information about UUID (very important, you have to set it later to the old UUID)

    blkid >> /somewhere/freepbx.hd

[offtopic: your system will try to boot by

/boot/grub2/grub.cfg

with

lvmid/VG-UUID/LV-UUID s7_freepbx-root-UUID

all of them you can set a new/old UUID, you do not need to set pv-UUID.]

getting your kvm-hd bigger with:

  • qemu-img resize virt-raw-disk +4GB (or more)

this will resize your partition

  • virt-resize --expand /dev/sda2 virt-raw-disk copy-of-virt-raw-disk
    /dev/sda2 is your pv with vg s7_freepbx with lvolumes s7_freepbx-root and s7_freepbx-swap
    /dev/sda1 is your /boot, will not touched by virt-resize

this will extend your lvm to max of the partition laying under lvm

  • lvextend -r -l +100%FREE /dev/s7_freepbx/root
    and it will also grow the filesystem of lv (xfs)
    without -r =>
    xfs_growfs /root (already mounted /dev/mapper/s7_freepbx-root)

After this resizing, i saw for a glimpse of a second an xfs error on boot. The system was fully functional.
Until now, your system will boot, but …

Repair your system with

  • xfs_repair /dev/s7_freepbx/root

:frowning:

After this xfs_repair my system was broken. Tilt, game over. I ended on dracut-prompt. What the hell is dracut? :wink: The error i saw told me, i had a problem with my initramfs (it is/was not true), but initramfs are on /boot, an extra xfs-partition on freepbx, without any filesystem problem.

I had a metadata corruption on xfs_fs /root.

If you know, how to recover an el7/freepbx from this prompt go ahead. But, cause of xfs_repair could damaged one or more (which one/s?) files of your functional system, you need the file-backup of above.

I tried with systemd-rescue.target editing grub.cfg, booting CentOS7-rescue-system, grub2.iso, rescataux.iso; none of them helped me.

	How to i recover a broken freepbx from dracut-prompt?

Because i could not recover from dracut-prompt, i did it this way:

  • mkfs.xfs -f /dev/vda2
    a new fs is initializing

the next step is VERY important

  • xfs_admin -U [old-UUID-of-boot-part-of-freepbx] /dev/s7_freepbx/root

if you touched somehow your swap-part, do it with
swapoff -a
mkswap -U [old-UUID-of-swap-part-of-freepbx] /dev/s7_freepbx/swap

get your rsync [or find-cpio] backup back on the new/old-uuid-xfs-part.

  • mount /dev/s7_freepbx/root /mountpoint-of-blank-root/
  • rsync -avPh --log-file=/somewhere/fpbx_root_back.log /backup-path/rsync.root/ /mountpoint-of-blank-root/

Thats it.

Some hints for beginners (like me):

  • check your backups under Admin/Backup and Restore
    they will_ eat your free-space

  • better, get your backup out of the box via ssh (or something else)
    if you use the backup-wizard, @the end, you have the option to choose another server, but if you configure manually a backup job, you have to define a remote server before with (for lines on the right side) servers …

    It is a little bit tricky, if you do have two/more backup jobs, they will_destroy your free space :wink:

  • right @the beginning of freepbx-installation take a really big partition, 16GB or more, think of a later system-update

  • if you have a virt. machine, do a file-backup too, because -as i never thougt, never had- the problem was a year ago on/in my system (but not this severity) and it was growing hidden till this really severe damage.

@the end, i have a really great system.

But -this i have to examine deeper- i did a last step (to much :slight_smile: )

my systems versions are:
Distri-Version: 12.7.5-1807-1.sng7
Freepbx-Version: FW Console - FreePBX Utility 14.0.5.5
asterisk-Version: Asterisk 13.22.0

  • yum upgrade -y
  • fwconsole ma upgradeall
  • fwconsole reload
    No errors were reported. Guess, what happened? :slight_smile:
    None of exts. could register himself, nothing worked on the same system, only did an upgrade/update. Í will test (upgrade/update) the system again. I think, this will another topic later. :slight_smile:

ELindemann

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.