Help! /boot is full!

Help! /boot is full!

That won’t be the first time. When /boot is full, and you can’t purge any kernel because of those damn dependencies. I’ve bookmarked a script found at github for a while ago, which explains a safe way of cleaning old kernels. However, it won’t help all the way, as some dependencies might break the cleanup. So I combined this solution with a forced removal with the help of dpkg since some of the dependencies are’nt necessary if we want to REMOVE the kernels anyway. And one huge problem is that people only decide to show one part of the solution. Not the fact that some dependencies can and almost certainly will break the removal in some step.

So this is how it went!

#!/bin/bash

ipv4="-o Acquire::ForceIPv4=true"

if [ "$1" = "4" ] ; then
	withip=$ipv4
	echo "Going IPv4 ($withip)"
fi

echo "Autoremove+Purge."
apt-get $withip -y -f autoremove --purge >/dev/null 2>&1

if [ "$?" != "0" ] ; then
	echo "Auto Removal Failed!"
fi

echo "Old dependency fix."
apt-get $withip -f -y install >/dev/null 2>&1

if [ "$?" != "0" ] ; then
	echo "That failed. So we'll try to make up to it during this process."
fi

echo "Now, going old kernel cleanup!"
kern=$(dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`)
hadErrors=0

for k in $kern
do
	echo apt-get -y purge $k
	apt-get $withip -y purge $k >/dev/null 2>&1

	if [ "$?" != "0" ] ; then
		echo "Failed apt-purge... Using plan B (--force-all -P)..."
		dpkg --force-all -P $k >/dev/null 2>&1
		echo "Rerunning stuff (apt-get -f -y install) for dependencies..."
		apt-get $withip -f -y install >/dev/null 2>&1
		if [ "$?" != "0" ] ; then
			echo "Still failing..."
			hadErrors=1
		fi
	fi
done

if [ "$hadErrors" = "1" ] ; then
	echo "I had errors. I should rerun this process, to see if there are more kernels that were left out after cleanup..."
	/usr/local/tornevall/cleankernel
fi

apt-get $withip autoremove
apt-get $withip update
apt-get $withip upgrade
apt-get $withip dist-upgrade

grb=$(which update-grub)
if [ "" != "$grb" ] ; then
	update-grub
else
	echo "Can't upgrade grub since update-grub is missing..."
fi
Asterisk [v16] + Skype via PJSIP (pjsip.conf)

Asterisk [v16] + Skype via PJSIP (pjsip.conf)

I’ve been looking a while now, for a proper pjsip-configuration for Asterisk that works with Skype. I found almost nothing but a shitload of dead ends. Either there was 484 Address Incomplete messages, 404 Not found or 403 Forbidden messages and nothing was leading me right. It turned out, not very quickly though, that the 403 Forbidden message was a thing about credits on the account that just had to be refilled.

Besides of this, most of the documentations covers just SIP (sip.conf) and that’s it. So here we go, with a default quick configuration for Skype, with Asterisk. The configuration is based on endpoints, so there’s nothing advanced with it. Just very basic.

First of all. You need to get yourself a phone number. This could be done via Skype Manager (as of july 2019, you may want to go via https://manager.skype.com/my/dashboard – however, links tend to die very fast on internet so over a few years this will probably also mismatch). Try to find your way to the ”Skype Connect” section (as of july 2019, I clicked via the allocation links – but I think you have to think a bit of yourself too). Configure what you need here and make sure you have credits added to the ”Outgoing calls” section!! Like the part below.

Next part is about configuring channels. So click on the channel-part and then jump the ”Authentication settings”. At this page, you will need to put the username and password into your pjsip.conf, with the sip address. An important note to remember here is that I’ve configured another port for my Asterisk server, rather than 5060, that is often very highliy scanned for flaws. However, this configuration should work fine even with this different setup.

Next up – edit your pjsip.conf – I have a very compact configuration myself together with another peers, to keep the rows simple to edit. With the other base peers I’ve also managed to confirm that another SIP peer like Skype actually works. I’m in Sweden, so I have a swedish number. In this case, we’ll pretend I’ve got a number in Helsingborg (042). Together with the username from Skype, the configuration is set like below.

[skype-0421234567]
 type=registration
 outbound_auth=skype-0421234567
 server_uri=sip:99051XXXXXXXXX@sip.skype.com
 client_uri=sip:99051XXXXXXXXX@sip.skype.com
 transport=transport-udp
 ;Is the contact_user here really necessary?
 contact_user=<my_own_sip_id>
 [skype-0421234567]
 type=auth
 auth_type=userpass
 username=99051XXXXXXXXX
 password=THE_SKYPE_PASSWORD
 realm=sip.skype.com
 [skype-0421234567]
 type=endpoint
 context=in-0421234567
 allow=!all,g722,ulaw,gsm
 from_domain=sip.skype.com
 from_user=99051XXXXXXXXX
 aors=skype-0421234567
 tone_zone=se
 outbound_auth=skype-0421234567
 [skype-0421234567]
 type=aor
 contact=sip:99051XXXXXXXXX@sip.skype.com
 [skype-0421234567]
 type=identify
 endpoint=skype-0421234567
 match=sip.skype.com

And since I actually have a transport layer in there, I should probably show an example of that one too.

[transport-udp]
 type=transport
 protocol=udp
 bind=external_server_ip:external_ip_port
 external_media_address=external_server_ip
 external_signaling_address=external_server_ip

So. What now? I’m done? No. There’s more to think of. How to make calls and how to receive them. I actually have an [inbound]-context where everything happens (which should be changed later on). However, to receive calls in Asterisk, you’ll put an extension that matches your phone number when Skype sends it to you. Like this:

exten => 46421234567,1,Answer
exten => 46421234567,n,NoOp(${CALLERID})
exten => 46421234567,n,Wait(1)
exten => 46421234567,n,Set(CALLFILENAME=${EXTEN}-${CALLERID(num)}-${STRFTIME(${EPOCH},,%y%m%d%H%M%S)})
exten => 46421234567,n,Monitor(wav,${CALLFILENAME})
exten => 46421234567,n,BackGround(PlayBeforeCalling)
exten => 46421234567,n,Dial(PJSIP/SIP_CONFIGURED_MOBILE&PJSIP/SIP_CONFIGURED_HOME_PHONE&PJSIP/LINPHONE_AT_LINUX,30,wWkKm)
exten => 46421234567,n,VoiceMail(INTERNAL_EXTENSION_VOICEMAIL_ID,u)
exten => 46421234567,n,Hangup

As you can see above, there’s a bit of mumbo jumbo. This is used for a few reasons. I’d like to monitor all in- and outbound calls and record them as wavefiles. That’s why they are tagged with extension, caller id and a timestamp. However, it is in Sweden required to tell callers that they are recorded, so that’s what the PlayBeforeCalling is made for.

That was the inbound part. The outbound part is as easy as the inbound set up. It is however configured in another context. For the outgoing calls. As I use another phone number as the default exit point, I’ve added a prefix to the Skype number. The Skype number is also limited to Sweden and has to be in the format of E.123. This is not necessary, but if you want to use a Skype number ”as is” you also have to include the country code in the mentioned format (i.e. +46421234567). I solved this by only using the number in my own country. The rule for this number is that I have to hit ”90” before the real number. So if I want to dial 042654321 I use 90042654321 to reach out). Doing this generic with only ”+” before the number is way too much job and would look like 904642654321. There will be in short too much number to remember to not forget… So here is the outbound configuration for Skype.

To be real safe, I also set up the caller id number as my phone number. And of course – I’m starting to monitor outbound numbers also. Like this:

[outbound]
 exten => _90X.,1,Set(CALLFILENAME=${EXTEN}-${CALLERID(num)}-${STRFTIME(${EPOCH},,%y%m%d%H%M)})
 exten => _90X.,n,Monitor(wav,${CALLFILENAME})
 exten => _90X.,n,Set(CALLERID(num)=+46421234567@sip.skype.com)
 exten => _90X.,n,Dial(PJSIP/+46${EXTEN:3}@skype-0421234567,,rwWkK)
 exten => _90X.,n,Hangup

I think this is it. There’s a lot more configuration so please tell if something is missing or failing. Unfortunately there’s to few PJSIP-configuration examples out there…

BBS-Lagen – Förbryllande för yttrandefrihetskämparna

BBS-Lagen – Förbryllande för yttrandefrihetskämparna

Den så kallade BBS-Lagen (lagen om ansvar för elektroniska anslagstavlor) verkar på många håll vara förbryllande, inte minst för ”yttrandefrihetskämparna” – som fortsätter strida för sin sak, famlande i totalt mörker. Ni vet, de där som anser att de har rätt att yttra alla sina åsikter, men gärna ber oppositionen att hålla käften när andra vill göra detsamma. Debatten har mer eller mindre gått sönder och delat upp landet i ett rätt-och-fel-läger, sedan domen mot grundaren av ”Stå upp för Sverige” föll. Den här företeelsen borde egentligen inte komma som en chock för någon eftersom lagen har funnits sedan 1998. Men det gör den ändå, då folk i allmänhet inte verkar vara riktigt vana vid att ta reda på saker i modern tid.

Det anses alltså på många håll, att ägaren av ”anslagstavlan”, BBS:en, forumet, Facebook-gruppen – eller vad det nu må handla om – inte har något som helst ansvar över vad andra skriver. Man kan tycka att det är så – vanligtvis skall man inte som vuxen person behöva ta ansvar över vad andra säger och gör. Det skulle i princip innebära att man kan omyndigförklara en rätt stor del av Sverige direkt.

Det är alltså i sak rätt – man kan inte hålla hand och ta ansvar för andra hela tiden. Men på internet kan du inte tillämpa det här på samma sätt som i verkligheten, som för barn till exempel. Förklaringen är i sig inte så svår att begripa, men man behöver kanske tänka till lite också. Det svårbegripliga tycks ligga i den maktlöshet som många känner över de administratörer, moderatorer och ägare, när de slutar ta ansvar för innehåll som kanske borde tagis bort – och den enda instansen man kan vända sig till för att få den hjälpen är just administratören eller moderatorn. Det vill säga, de som beklagar sig över att man måste ta ansvar för andra verkar ha extremt svårt med att relatera till vad andra människor kan utsättas för.

Rent krasst skulle man kunna beskriva problemet grovt så här: Låt säga att du blir orättvist uthängd på ett forum, för något du absolut inte känner dig delaktig i. Den eller de som administrerar det här forumet struntar högaktningsfullt i detta, utan anser snarare att yttrandefrihet råder. Detta trots att det troligtvis skulle finnas långt ifrån en enda lagparagraf som stävjar en sådan sak. Det finns både förtal och ärekränkning att åberopa exempelvis.

Men exemplet slutar egentligen inte där (det är ju bara det mest uppenbara). Även andra saker som skrivs av vuxna människor som borde ha tagit sitt ansvar över vad de skriver – får ibland ligga kvar, även om det inte borde få göra det. Inlägg som gränsar till hets mot folkgrupp och rasism förblir ibland orört, eftersom man inte själv förmår sig att dra gränsen för vad som är tillåtet (och just därför tar vi ju ibland hjälp av domstolar). ”Jag har högt i tak här och låter folk tycka och tänka som de vill” är absolut inte ett hållbart argument för att låta det fortgå heller.

Pratar vi om Facebook är det dessutom inte alls säkert att allt som skrivs betraktas som brott något alls. Lagarna är vitt spridda från land till land, så ibland är det till och med så att Facebooks regler inte tillämpas på samma sätt överallt. Och Facebook är, påminnelsevis, inte en myndighet. De kan egentligen, praktiskt taget, göra precis exakt vad de vill så länge det sker inom ramarna för vad lagen säger.

Nu har människor i vilket fall som helst börjat känna sig extremt frustrerade. De får ju inte något gehör för sin vädjan längre. De som skulle varit till hjälp är snarare den största motverkande parten i fråga. Varken av webbhotellet, moderatorerna eller de som skriver nedsättande om varandra hjälper till. Det är alltså här som man behöver diskutera ansvaret – och något som alltså BBS-lagen lite grand lade grunden för. Frågan vi även behöver ställa är alltså: ”Skall det verkligen krävas en polisanmälan för att folk skall sluta upp att bete sig som arslen?”.

BBS-Lagen då?

Det är viktigt att veta att BBS-lagen inte enbart grundades för att stävja kränkningar och rasism på diverse anslagstavlor. Det finns en ganska gedigen bakgrund till varför den överhuvudtaget diskuterades i slutet av 1990-talet. Att lagen kallas för just BBS-lagen beror på att att allt startade med just BBS:er. Det kanske låter som en självklarhet, men för medelsvensson är ingenting – 2019 – längre självklart.

Föregångaren till den piratkopiering som idag sker via torrent och dylika medium, var vanligt förekommande bland en del av de större och kändare svenska BBS:erna – fast med en bråkdel av de hastigheter internet ger oss idag.

Under 1996 hölls den första rättegången i sitt slag mot piratkopiering i Sverge och var bara en av många anledningar till varför lagen sedan uppkom 1998.

Förutom rasism och piratkopiering fanns det det BBS-ägare som kände till, men inte gjorde något åt problemet, att deras BBS:er användes som bas för barnporr. En tidning skriver bland annat (och det finns mer att fördjupa sig i)…

En värmländsk BBS-ägare i Karlstad blev för en tid sedan
bötfälld för att han tillåtit barnpornografiska bilder i sin
databas. Han hade inte själv gjort något för att underlätta
trafiken, men han kände till den. Domen överklagades men togs
aldrig upp av hovrätten.

Ett annat omdebatterat fall är helsingborgaren som åtalats för att ha upplåtit sin BBS för spridning av piratkopior. Målet avgörs i dagarna av Högsta Domstolen, men tills dess gäller den friande domen från hovrätten.

Denna osäkerhet om lagstiftningens räckvidd är motivet till en särskild BBS-lag. I det preliminära förslaget passar utredarna också på att göra bland annat barnpornografi och rasistiska uttalanden åtalbara redan när de når fram till en BBS, vilket de inte är idag.

Det fanns en allmän uppgivenhet redan då, kring hur olika slags nätverkande sköttes, även om det var långt ifrån alla som var oseriösa. I grunden användes BBS:er och näten (däribland Fidonet) på ett sätt som idag kan likställas med just Internet. Problemen vi såg då har i princip bara bytt skepnad och form – och BBS-lagen har i nästan 20 år bevisligen fallit i glömska. Att den skulle inskränka yttrandefriheten på något sätt är dock ett oerhört felaktigt påstående. Att folk på ett ganska märkligt vis anser att deras yttrandefrihet bör innefatta även främlingsfientlighet och ”rätten att kränka andra människor” betyder inte automatiskt att det blir rätt att syssla med det. Snarare är det tvärtom – det är fortfarande inte tillåtet, enligt lag.

Att det finns folk som helt förlorat vettet och inte begriper detta är för mig helt obegripligt.

”Declaring war”

”Declaring war”

Jag har länge pratat vitt och brett om ett filter jag ska göra för i första hand Chrome-läsare.

Kort handlar det om att söka igenom sociala medier efter ”ovälkomna element”. Initialt var det ”roliga Facebook-tester” jag ville slippa se, men insåg ganska fort att man kan utöka filtret till att plocka bort rasistiska webblänkar också. Tiden fanns dock inte för att åtgärda problemet, men embryon skapades och bekräftade att det är fullt möjligt att utföra det här. I dagarna insåg jag, efter en avstängning på grund av överanvändande av ordet ”mansgris” i ett antal tester – vilka bekräftade att Facebook ger sig i kast på en nivå som i det närmaste kan betraktas som antifeministiskt.

Där någonstans kände jag att ett filter inte kommer vara tillräckligt för mina syften. Risken är att min bitterhet över slapphänta ”communityregler” som tenderar att skada gemene man initierar ett projekt som förklarar krig mot hela internet. Jag inser att jag inte längre bara kan sitta stilla och tiga och se på när allt händer, så jag ska i möjligaste mån börja bygga en alphaversion av något slags embryo på en mycket grundläggande nivå. Sen får vi se var det leder.

Marvels fall och uppgång

Marvels fall och uppgång

Redan på de första sidorna i Marvels Civil War har jag observerat en ”impact” på hur MCU’s filmer är gjorda. Inte minst ur deras licensieringsperspektiv. Marvel har varit otroligt smarta här, med hur uppdelningen mellan rivalerna i filmerna gjordes i förhållande till serierna.

Allt detta har hänt på grund av att Marvel, 1996-1998, var nära att gå i konkurs och de därmed var tvungna att sälja en herrans massa av sina karaktärer till bland annat Fox och Sony – men [lyckligtvis] behöll sina baskaraktärer i Avengers.

Det var nog ingen 2008, när de första MCU-filmerna såg sitt ljus igen genom Iron Man, som kunnat ana att detta skulle vända. Nu, 23 år senare, får se ett återförenande av allt man höll på att förlora – tack vare Disney.

Jag minns när Disney köpte Lucasfilm. Det var många upprörda röster – inklusive jag själv:
 
”Nu får vi väl snart se Musse Pigg, döda Darth Vader också! SUCK Å STÖN!”.
 
– Det kommer aldrig gå väl, var tonerna som gick.
 
Jag minns även när jag för några år sen skrev att Disney gjort det jag aldrig trodde att dom skulle klara att göra. Nämligen just detta. Nu är vi äntligen där, med Endgame och fas 4 på intågande. Nu har Disney gjort allt det där som vi trodde att dom inte skulle klara av att göra och mer därtill. De har åter fört samman Marvels alla karaktärer igen, så att det bara kan bli bättre.
%d bloggare gillar detta: