Je pense qu'un petit script s'impose.

si tu fais un asterisk -rx 'core show channels'|grep 'le non de ta ligne'|wc -l, cela te donnera le nombre de canaux occupé pour ton canal SIP.

Tu refais cela jusqu'a ce que tu trouve une ligne dispo.

C'est un peu bourin mais simple.

Sinon il faut à chaque fois que tu rentre dans ton context alarm-context et que tu racroche, il faut mettre à jour une BD qui contient toutes tes lignes avec les temps de prise et de libération.
Ensuite lorsque tu crée ton fichier .call, une requette sql sur les canaux avec une date de libération inférieur à l'heure actuelle te donne un canal dispo.